我正在寻找一个用于调试和逐步执行Java字节码的工具 可视化基本JVM状态,包括操作数堆栈和局部变量数组,仅用于教育目的和JVM学习(对我自己而言,对于其他人也是如此)。手头有这样的工具吗?
我遇到了Garbage博士的Bytecode Visualizer Eclipse插件,它允许打破并单步执行Bytecode,但它没有可视化JVM状态:
http://www.drgarbage.com/bytecode-visualizer
以下相关问题(相当陈旧)提到了一些工具,其中一些允许单步执行Bytecode,但没有一个具有JVM状态可视化:
是否有这样的工具,能够调试简单的Java程序?甚至是一个简单的JVM模拟器?
谢谢!
答案 0 :(得分:1)
我改编了PyJVM以执行您要执行的操作。它为Java程序的每个线程显示了一个简单的gui(必须为Java7编译)。
此工具的唯一问题是它没有GC,因为垃圾回收是由Python本身处理的。因此,线程1(守护程序)(引用处理程序)将永远不会做任何事情。 Finalize方法也不会触发。
源代码可以在https://github.com/MatevzFa/pyjvm上使用(警告:,源代码看起来不太好看),您也可以使用pip
({{1 }},实际上是因为PyJVM是用Python2编写的。
安装:
pip2
升级:
pip install pyjvmgui
我还得为此写一个好的自述文件。