如何从object file得到崩溃地址对应的代码行数?
工程是使用ARM的DS-5作为SDK,SDK提供工具链的是armcc,Windows下交叉编译到ARM9EJ-S执行。
工具链只提供了必要的编译器armcc,汇编器armas,连接器armlink,没有类似addr2line的东西。
编译出可执行文件外还会有一个map文件展示可执行文件的内存空间分配。当程序崩溃时,拿到崩溃
地址后,可以通过map文件找到对应的函数,但无法定位到代码行数。armcc编译出来的object file
是elf格式,可以带DWARF2或DWARF3的调试信息,但是armlink生成可执行文件时会把所有的debug
信息去掉。
能够通过现有的崩溃地址、带debug信息的object file、map文件和可执行文件得到崩溃地址对应的
代码行数吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
armlink链接生成的文件是elf格式的,用arm-linux-gnueabihf-addr2line.exe即可。