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

如何在Trace32中同时显示整个项目源代码与汇编代码

不需要逐个添加所有源文件,按如下步骤配置即可完成多级目录下的源码自动关联:

前置检查

首先确认交叉编译生成的ELF包含完整调试信息:编译时需添加-g选项,且不要执行strip操作去除符号,否则ELF内不会记录源码路径信息,无法完成关联。可在Trace32命令行执行symbols.source.path.list查看ELF内嵌的编译时源码路径,确认调试信息正常存在。

源码路径配置方法

Trace32支持递归目录搜索,无需逐个添加子目录或源文件:

  1. 路径前缀替换(编译路径与本地源码路径不一致时必须配置)
    如果ELF是在其他环境(编译服务器、容器等)生成的,其内嵌的源码路径与当前调试机的源码存储路径不匹配,需要先执行前缀替换,命令格式:
sYmbol.SourcePATH.Replace "<编译时的源码根路径前缀>" "<当前调试机的源码根路径>"

例如编译时源码统一存放在/opt/build/myproj/路径下,当前调试机源码存放在E:/work/myproj/,则命令写为:

sYmbol.SourcePATH.Replace "/opt/build/myproj/" "E:/work/myproj/"

注意路径末尾要加斜杠,避免前缀匹配错误。

  1. 递归添加源码搜索根目录
    执行如下命令,Trace32会自动递归遍历指定根目录下的所有层级子目录,自动匹配对应源文件,无需手动逐个添加子目录:
sYmbol.SourcePATH.Tree "<当前调试机的源码根路径>"
修正ELF加载脚本

在原有加载脚本中补充源码配置逻辑,同时给ELF加载命令添加/SOURCE参数,加载时自动完成源码关联,修正后的参考脚本如下:

system.down 
system.reset 
system.up 
; 路径替换,编译路径与本地路径一致可注释该行
sYmbol.SourcePATH.Replace "<编译时源码根路径>" "<本地源码根路径>"
; 递归加载所有子目录下的源文件匹配规则
sYmbol.SourcePATH.Tree "<本地源码根路径>"
; 加载ELF,自动关联源码
Data.Load.elf <pathtoelf> /SOURCE
; 加载完成后跳转到main函数验证关联效果
List.go main
异常排查

如果配置后仍只显示汇编,可执行sYmbol.SourcePATH.Check命令,Trace32会列出所有未匹配到的源文件及其内嵌原始路径,根据返回结果调整路径替换规则即可。

补充注意事项:

  • 调试版本建议使用-O0 -g选项编译,高优化级别下会出现源码与汇编地址错位、变量被优化的问题,影响调试体验。
  • Windows环境下路径使用正斜杠/或反斜杠\均可识别。
  • 不要使用sYmbol.SourcePATH.Add命令逐个添加单目录,该命令不会递归遍历子目录,仅适合单目录结构的小项目。

内容的提问来源于stack exchange,提问作者jasan singh chugh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:33:39