无法在Android上的GDB中显示嵌套命名空间

时间:2016-04-07 15:50:29

标签: gdb android-source

我在尝试在Android上的gdb中显示嵌套命名空间时遇到问题。我试图调查ART框架(主要包含在模拟器上的libart.so和libandroid_runtime.so中的符号)

我有兴趣调查课程" Class"在ART。它位于art :: mirror :: namespace。

之下

这是我的设置:

1) Built a Marshmallow version of the AOSP with debug symbols
2) Launched the emulator with my AOSP build
3) Used gdbclient to connect to a running process (com.android.musicfx-- arbitrary, but uses the Android runtime)
4) Used set solib-search-path in gdb to the same place my library symbols are.

这会加载libart.so和libandroid_runtime.so(其他很多)。但是,每当我尝试将一段内存转换并打印到" Class"类,它失败了:

(gdb) p/x *(art::mirror::Class*) 0xbed1af38
No type "mirror" within class or namespace "art".

"反射镜"绝对是'#34;艺术"。它是Java< - >的基础。 ART运行时中的C转换:请参阅http://androidxref.com/6.0.0_r1/xref/art/runtime/mirror/class.cchttp://androidxref.com/6.0.0_r1/xref/art/runtime/mirror/class.h

我哪里错了? https://vaioco.github.io/art/art-part-i/的作者基本上做了同样的事情,似乎对他有用。

0 个答案:

没有答案