我了解 .class 文件包含与字节码关联的行号,以便于here中所述的调试程序的工作。
我也理解每个线程都有自己的 pc寄存器,它们指向下一条指令,如here所述。通过使用这些寄存器,调试器可以例如通过将指令与行号相关联而在特定行处停止。
我也理解Java线程绑定到OS线程,这些OS线程作为本机代码执行。
但是, pc寄存器的描述是
如果线程当前正在执行的方法是本地方法,则Java虚拟机的pc寄存器的值未定义。
然后的问题是:如果调试器使用与字节码指令关联的行号,并且 pc寄存器通知下一条指令,那么如果有可能,如何调试线程代码(如果确实如此)它是作为本机代码执行的,并且由于 pc寄存器的值未定义?
我怎么了?