2

我想知道当应用程序在我们的设备上运行时,android 开源的 dalvik 目录中发生了什么。我知道 AOSP 中的 dalvik 部分被编译为 libdvm.so。我不想调试 android 应用程序,但需要知道应用程序运行时一切从哪里开始(与解释器和 JIT 相关)。

当应用程序在设备上运行时,它的 dex 代码被解释,检测到的热跟踪被传递给 JIT 编译器以转换为 m/c 代码。在设备上运行应用程序时是否可以通过调试器看到这一点。我希望这个要求不会令人困惑。

我尝试在主机上使用 gdbclient,在设备上使用 gdbserver。

  1. /system/bin/dalvikvmas 可执行文件。但是它解析AOSP中的dalvikvm文件夹
    ,我认为这是dalvik的命令行执行部分。

  2. 然后我给出libdvm.so了可执行文件。它加载了符号。但是我应该在哪里给出断点。

在设备中启动应用程序后,它说程序未运行。

有人做过这种调试吗?请帮助我您的方法和建议。

4

1 回答 1

0

我使用过 ndk 并且能够调试本机代码。您需要为该 ndk 版本使用 gdb 客户端。但是对于dalvik,它有一些测试和调试工具,但没有尝试使用gdb ..

于 2013-05-02T13:51:05.267 回答