在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参数?当我使用此参数运行时,单行有多个步骤请求,我无法理解它。
答案 0 :(得分:1)
StepRequest.STEP_MIN的sizevalue将分别生成一个步骤事件 代码索引发生变化的时间。它代表最小的步长 可用并经常映射到指令级别。大小值为 StepRequest.STEP_LINE将在每次源时生成一个步骤事件 除非行号信息不可用,否则行更改 例如,将完成STEP_MIN
查看The class file format#The LineNumberTable
LineNumberTable属性是可选的可变长度属性 在Code(§4.7.3)属性的attributes表中。 可以使用 通过调试器来确定Java虚拟机代码的哪一部分 array对应于原始源文件中的给定行号。
可能StepRequest使用代码数组和行号表来确定下一步的位置。