如何从object file得到崩溃地址对应的代码行数?

发布于 2022-09-06 22:45:13 字数 366 浏览 16 评论 0

工程是使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初吻给了烟 2022-09-13 22:45:13

armlink链接生成的文件是elf格式的,用arm-linux-gnueabihf-addr2line.exe即可。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文