Ein*_*eri 5 c++ shared-libraries objdump
我正在尝试在定制的 ARM 板上调试 Android Surfaceflinger 守护程序中的段错误。该进程在转储调用堆栈和寄存器内容(包括程序计数器)之前崩溃。
通常我会使用 objdump 并搜索程序计数器。问题在于调用堆栈的一部分位于共享库中。如果不使用 gdb,我如何将程序计数器与源文件中的一行关联起来?即是否可以在不运行程序的情况下确定共享库指令的地址?
最简单的解决方案是将核心转储加载到 gdb 中并使用info symbol <program counter address>,请参阅/sf/answers/535421841/。
您也可以使用addr2line,但必须在参数中提供库起始地址addr2line,请参阅如何将函数地址映射到 *.so 文件中的函数。
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |