【问题标题】:How to access the statement object (of each line of code) when using JDI?使用JDI时如何访问语句对象(每行代码)?
【发布时间】:2015-03-19 14:50:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: java mirror jdi


    【解决方案1】:

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

    Location.lineNumber()
    Location.sourceName() 
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      相关资源
      最近更新 更多