android - Dalvik 字节码跟踪器

标签 android runtime bytecode dalvik

如何获取设备运行应用程序时正在执行的 dalvik 字节码的跟踪(如 logcat 那样)?

最佳答案

没有现有的工具可以完成您想要的操作,但无需太多工作就可以实现这样的工具。

总体思路是,你想要连接到 dalvik 的 vm 作为调试器,使用 jdwp 协议(protocol),单步执行虚拟机,检查每个步骤之间的状态并打印出指令。您应该能够获得...指令索引。或者也许是指令偏移量,通过 JDWP。

此外,您需要读取 dex 文件,并根据从 JDWP 获得的指令索引/偏移量查找正在执行的确切指令。

您应该能够使用AndBug实现上述解决方案的第一部分,然后使用 dexlib访问dex文件,以获取指令。

关于android - Dalvik 字节码跟踪器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494504/

相关文章:

serialization - 在 visual studio 2010 上找不到 System.Runtime.serialization.dll

java - 为什么同一个 JAR 文件在我每次构建时都有不同的哈希值?

android - 在android上绘制多个图像

android - Jetpack Compose 中的过度滚动处理

java - 滚动到/设置自定义列表首选项的位置

java - 在 Java 字节码中编写方法时,局部变量的成本与操作数堆栈大小的关系

bytecode - 如何使用 ASM Opcodes.ACC_SYNTHETIC

android - Google 应用内购买始终会获得退款

.net - .NET 运行时是否在内部映射到 win32 函数调用?

python - 在运行时向 python 公开一个新类型