在Java调试接口中,带有StepRequest.STEP_MIN参数的StepRequest是什么意思? https://docs.oracle.com/javase/7/docs/jdk/api/jpda/jdi/com/sun/jdi/request/StepRequest.html Java文档说“转到下一个可用位置”。下一个可用位置是什么?我知道StepRequest.STEP_LINE参数可以逐行运行,但是StepRequest.STEP_MIN参数是什么?当我使用此参数运行时,单行有多个步骤请求,但我无法理解。

最佳答案

RequestManager javadoc


  SizeRequest.STEP_MIN的值将分别生成一个step事件
  代码索引更改的时间。代表最小步长
  可用并且通常映射到指令级别。大小值
  每次来源时,StepRequest.STEP_LINE都会生成一个step事件。
  除非没有行号信息,否则行会发生更改,其中
  否则将执行STEP_MIN


看着The class file format#The LineNumberTable


  LineNumberTable属性是可选的可变长度属性
  代码(§4.7.3)属性的属性表中。可以使用
  由调试器确定Java虚拟机代码的哪一部分
  数组对应于原始源文件中的给定行号。


可能是StepRequest使用代码数组和行号表来确定下一步位置。

07-28 13:03