2

我正在通过 Eclipse(使用 ADT 和 CDT)远程调试 Android NDK 应用程序。

由于某种原因,gdb 无法连接到 Android 链接器,因此加载库不会导致符号加载。发生崩溃时,某些符号可能尚未加载。

set solib-search-path obj/local/armeabi在 Eclipse 控制台视图中执行,这会导致 GDB 重新加载符号。之后,我可以发出btGDB 回溯,它可以工作。

如何使用正确的回溯信息使 Eclipse 调试视图刷新?步进不是一个选项,因为我正处于 SIGSEGV 处理的中间。

PS 根据 Android NDK 修订版 8b,现在已修复:

Fixed several issues in ndk-gdb:
...
* Updated tool to retrieve /system/bin/link information, so gdb on the host can set a breakpoint in __dl_rtld_db_dlactivity and be aware of linker activity (e.g., rescan solib symbols when dlopen() is called).

Eclipse 仅显示部分回溯

4

1 回答 1

1

一种可能的选择似乎是跳转到我所在的确切指令,即:

jump * 0x40102ab6

我希望有一个更方便的选择:-)

于 2012-10-14T17:31:17.123 回答