调试的原理是什么?
2022-09-03 02:36:24
我已经学习了几年的编程,并经常使用调试。但我仍然不明白调试的核心原理,它是如何工作的?单线调试(单步执行)是如何实现的?
以Java语言为例。
CPU 对调试实现有什么作用?
JVM 为调试实现做了什么?
eclipse 对调试实现有什么作用?
可能是我上面列出的三个东西与调试无关。我只是猜到了。我已经谷歌了一段时间,没有获得任何对我有用的东西(当然,调试本身很复杂),我希望更简单的解释。
谢谢。
我已经学习了几年的编程,并经常使用调试。但我仍然不明白调试的核心原理,它是如何工作的?单线调试(单步执行)是如何实现的?
以Java语言为例。
CPU 对调试实现有什么作用?
JVM 为调试实现做了什么?
eclipse 对调试实现有什么作用?
可能是我上面列出的三个东西与调试无关。我只是猜到了。我已经谷歌了一段时间,没有获得任何对我有用的东西(当然,调试本身很复杂),我希望更简单的解释。
谢谢。
每个处理器都有自己设计的调试机制。
对于 x86 CPU,处理器有 6 个调试寄存器,用于存储调试断点和中断条件。简要了解本文以了解英特尔 x86 CPU 调试机制:http://en.wikipedia.org/wiki/X86_debug_register
对于Java调试机制的情况,请参阅:http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html 正如Mukul Goel在问题下的评论流中指出的那样。
为了便于调试(使用断点等),编译器将某些附加信息插入到它生成的编译输出中(即二进制文件或Java中的JVM字节码文件)。此额外信息允许将已编译输出的每一行映射到相应的源文件。
我还没有回答你问题的所有部分,但希望足以帮助你入门。查看以下资源: