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

标签 java mirror jdi

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

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

我浏览了各种类(class)和教程,但找不到是否有一个类(class)可以介绍这个概念。我发现的最接近的是 Location类...但它仍然不包含我想要的信息。

最佳答案

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

Location.lineNumber()
Location.sourceName() 

一旦获得源代码行号,就可以读取源路径以了解所执行的确切语句。与 eclipse 调试器的做法类似。

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

关于java - 使用JDI时如何访问(每行代码的)语句对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147757/

相关文章:

java - 带有 StepRequest.STEP_MIN 参数的 StepRequest

Java 正则表达式 : find sequence of letter-digit combinations, 允许某些符号

java - 仅在本地主机上的 Google App Engine 1.6.4 上使用 Jsoup 时出现 ClassFormatError

java - 异常在线程 "main"java.lang.UnsatisfiedLinkError : no lpsolve55j in java. library.path

java - 检测用户是否为管理员

HTML5 Canvas - 镜像视频部分

wordpress - 如何复制wordpress插件?

java - 为什么在使用方法入口调试时,被调试的程序速度变慢了这么多?

Swift 获取泛型类中的所有属性

java - JDI/JPDA 事件过滤