You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aarch64-linux-gnu-ld链接后可执行文件无调试符号求助

解决方案:保留AArch64汇编程序的调试符号

问题出在你的链接命令里的-s参数——这个参数会让aarch64-linux-gnu-ld直接剥离所有符号表和重定位信息,包括你从目标文件main.o里带过来的调试符号,哪怕加了-g也无法保留。

直接修复步骤

把链接命令里的-s选项移除,重新执行链接:

aarch64-linux-gnu-ld -g -o main main.o

之后再用gdb ./main调试,就能正常识别调试符号了。

兼顾体积与调试的方案

如果需要减小最终可执行文件的体积,但又想保留调试能力,可以分两步操作:

  1. 先生成带完整调试符号的可执行文件:
    aarch64-linux-gnu-ld -g -o main main.o
    
  2. 用strip工具生成剥离符号的精简版本(用于发布),调试时使用原版:
    aarch64-linux-gnu-strip main -o main_stripped
    

验证调试符号是否存在

可以用以下命令检查可执行文件里是否包含调试段:

readelf -S main | grep debug

如果输出里有.debug_info、.debug_line等以.debug开头的段,说明调试符号已正确保留。

内容的提问来源于stack exchange,提问作者bkomanet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:59:57