当前位置:网站首页>TRACE32——加载符号表信息用于调试
TRACE32——加载符号表信息用于调试
2022-08-05 06:42:00 【Rainmicro】
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章节
边栏推荐
猜你喜欢
随机推荐
【instancetype类型 Objective-C】
Hash these knowledge you should also know
typescript66-分析partial的实现
今天虚竹哥又发现了一款好用的国产化API工具
IO进程线程->进程间的通信->day7
Technical Analysis Mode (8) Double Top and Bottom
GAN生成动漫头像Pytorch
数据库多表关联插入数据
MySQL: basic part
2022.7.29好题选讲(计数专题)
Summary of Text Characterization Methods
RNote108---显示R程序的运行进度
一天学会从抓包到接口测试,通过智慧物业项目深度解析
Mysql为什么 建立数据库失败
360度反馈调查表中的问题示范
任务流调度工具AirFlow,,220804,,
UDP broadcast
Shiny04---Application of DT and progress bar in shiny
开启防火墙iptable规则后,系统网络变慢
Cannot compare or sort text, ntext, and image data types









