StepRequest with StepRequest.STEP_MIN参数

时间:2018-05-27 21:16:50

标签: java debugging jdi jpda

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

1 个答案:

答案 0 :(得分:1)

来自RequestManager javadoc

  

StepRequest.STEP_MIN的sizevalue将分别生成一个步骤事件   代码索引发生变化的时间。它代表最小的步长   可用并经常映射到指令级别。大小值为   StepRequest.STEP_LINE将在每次源时生成一个步骤事件   除非行号信息不可用,否则行更改   例如,将完成STEP_MIN

查看The class file format#The LineNumberTable

  

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

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