TRACE32——加载符号表信息用于调试

TRACE32——加载符号表信息用于调试

劳特巴赫TRACE32可以显示目标芯片上运行的源码,并且可以通过相应的按钮和命令在C源码和汇编码之间切换。

图片

但有的时候,连上目标芯片后,并不需要重新烧写代码,只需要调试板子上已有的代码就行,这时候就需要从ELF等文件中,加载调试信息(符号表信息),才能实现上面提到的源码显示功能。

调试信息(Debug Infomation)或者 符号表信息(Symbol),一般会被编译器生成到最终的可执行程序中,例如ELF文件,这时TRACE32便可以使用如下命令进行加载

Data.load.elf * /Nocode

其中最重要的一个参数:

/Nocode

表示这条命令,不加载ELF文件里的代码,只加载符号表信息。

另外,Data.load.elf 表示加载ELF文件,如果有其他格式的文件,可以用

Data.load * /Nocode

或者

Data.load.auto * /Nocode

其中*号表示弹出对话框,选择文件。如果需要,也可以直接指定文件路径

Data.load.auto D:\app.elf /Nocode

看一下效果:

未加载符号表:

图片

加载符号表后:

重要信息

  • 请查阅编译器手册来正确配置,确保ELF包含有调试信息

  • 请确保命令中选择的ELF文件和当前芯片运行的程序完全一致,否则会出现函数或者变量显示错误的问题

当心PC指针被改写

**有些时候,编译生成的可执行程序中的符号表信息,还包含有程序入口地址。**直接加载这样的文件,会导致调试器把当前正常运行的PC指针改写。

如果不希望这样,可以通过/Noreg参数来去除符号表信息中的寄存器信息:

Data.load.auto * /Nocode /Noreg

多个ELF的符号表信息

如果需要加载多个ELF文件,默认情况,前一个ELF的符号表信息会被后一个ELF的符号表信息覆盖。

如果不希望这样,可以通过/Noclear参数来保留多个符号表信息

Data.load D:\boot.elf /Nocode
Data.load D:\app1.elf /Nocode /Noclear
Data.load D:\app2.elf /Nocode /Noclear

源码路径关联

有些时候,即使加载了符号表信息,还是没能正常显示C源码:

图片

这种情况,只需要调整C源码的关联路径即可。

更多关于Data.load命令的使用方法和参数介绍,请查阅相关文档:

  • <T32安装目录>\pdf\general_ref_d.pdf\Data章节
  • https://www2.lauterbach.com/pdf/general_ref_d.pdf\Data章节
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值