使用操作数堆栈和本地可视化进行Java字节码调试?

时间:2017-06-01 13:21:19

标签: java jvm bytecode

我正在寻找一个用于调试和逐步执行Java字节码的工具 可视化基本JVM状态,包括操作数堆栈和局部变量数组,仅用于教育目的和JVM学习(对我自己而言,对于其他人也是如此)。手头有这样的工具吗?

我遇到了Garbage博士的Bytecode Visualizer Eclipse插件,它允许打破并单步执行Bytecode,但它没有可视化JVM状态:

http://www.drgarbage.com/bytecode-visualizer

以下相关问题(相当陈旧)提到了一些工具,其中一些允许单步执行Bytecode,但没有一个具有JVM状态可视化:

是否有这样的工具,能够调试简单的Java程序?甚至是一个简单的JVM模拟器?

谢谢!

1 个答案:

答案 0 :(得分:1)

我改编了PyJVM以执行您要执行的操作。它为Java程序的每个线程显示了一个简单的gui(必须为Java7编译)。

此工具的唯一问题是它没有GC,因为垃圾回收是由Python本身处理的。因此,线程1(守护程序)(引用处理程序)将永远不会做任何事情。 Finalize方法也不会触发。

源代码可以在https://github.com/MatevzFa/pyjvm上使用(警告:,源代码看起来不太好看),您也可以使用pip({{1 }},实际上是因为PyJVM是用Python2编写的。

安装:

pip2

升级:

pip install pyjvmgui

我还得为此写一个好的自述文件。