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