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

问题描述 投票:0回答:1

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

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

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

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

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

谢谢!

java jvm bytecode
1个回答
1
投票

我已经改编了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

我还是要为它写一篇好的自述文件。

© www.soinside.com 2019 - 2024. All rights reserved.