我看不到使用 gdb 加载的 coredump 的符号
Posted
技术标签:
【中文标题】我看不到使用 gdb 加载的 coredump 的符号【英文标题】:I can not see the symbol from loaded coredump using gdb 【发布时间】:2014-01-08 02:40:06 【问题描述】:全部~
我无法从使用 gdb 加载的核心转储中看到符号。
我按以下顺序加载了核心转储文件。
$gdb
(gdb) core-file vold.corefile
[New LWP 3833]
[New LWP 3834]
[New LWP 3835]
Core was generated by `/system/bin/vold'.
Program terminated with signal 3, Quit.
#0 0xb6eaffc8 in ?? ()
(gdb) symbol-file ./out/target/product/msm8974/obj/EXECUTABLES/vold_intermediates/LINKED/vold
Reading symbols from /home/p14291/MSM8974_KK/SYS/EF63/MSM8974_KK/out/target/product/msm8974/obj/EXECUTABLES/vold_intermediates/LINKED/vold...done.
(gdb) bt
#0 0xb6eaffc8 in ?? ()
#1 0xb6ebd316 in ?? ()
#2 0xb6ebd316 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
如你所见,我看不到任何符号信息。
如何查看backtrace上的符号信息?
【问题讨论】:
【参考方案1】:我看不到任何符号信息。
当您将错误的二进制文件加载到 GDB 中时,通常会发生这种情况。你应该
使用规范的方式调用 GDB:
gdb out/target/product/msm8974/obj/EXECUTABLES/vold vold.core
确认您的二进制文件out/target/product/msm8974/obj/EXECUTABLES/vold
与生成核心转储的目标系统上的/system/bin/vold
完全相同(模剥离——如果一个二进制文件是另一个二进制文件的剥离版本,那没关系)。
【讨论】:
以上是关于我看不到使用 gdb 加载的 coredump 的符号的主要内容,如果未能解决你的问题,请参考以下文章