如何在使用JDI时访问(每行代码的)语句对象



我正在编写一个程序,使用JDI逐步执行Java代码。我现在可以在任何给定的时刻检查我关心的所有变量的值。

现在,我希望能够检查(正在逐步执行的)每一行代码的性质。例如,程序是否在两个变量之间进行比较?这是作业说明吗?

我浏览了各种各样的课程和教程,但找不到,如果有一个课程提出了这个概念。我找到的最接近的东西是Location类。。。但它仍然没有包含我想要的信息。

如果您正在寻找确切的源代码行,那么Location将帮助您获得正在执行的源代码:

Location.lineNumber()
Location.sourceName() 

一旦获得源行号,就可以读取源路径,以了解执行的确切语句。类似于eclipse调试器的操作方式。

至于正在执行的语句的性质(据我所知)超出了JDI的范围,它更多地属于解析java语言语句。就像这里的一样

最新更新