调试的原理是什么?

时间:2012-10-29 07:42:08

标签: java debugging computer-science

我已经学习了几年的编程,经常使用 debug 。但我仍然不理解核心原则 debug ,它是如何工作的?如何实现单线调试(步入)?

java语言为例。

CPU为调试实现做了什么?

JVM为调试实现做了什么?

eclipse为调试实现做了什么?

可能是我上面列出的三个与调试无关的内容。我只是猜到了。我已经google了一段时间并且对我没有任何帮助(当然,调试本身很复杂),我希望更简单的解释。

感谢。

3 个答案:

答案 0 :(得分:11)

每个处理器都有自己的调试机制设计。

对于x86 CPU,处理器有6个调试寄存器,用于存储调试断点和中断条件。简要介绍一下本文的Intel 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在问题评论流中指出的那样。

答案 1 :(得分:1)

为了便于调试(使用断点等),编译器将某些附加信息插入到它生成的编译输出中(例如,在Java的情况下为二进制文件或JVM字节码文件)。这些额外信息允许将编译输出的每一行映射到相应的源文件。

我没有回答你问题的所有部分,但希望足以帮助你开始。 查看这些资源:

http://en.wikipedia.org/wiki/Debug_symbol

How does a debugger work?

答案 2 :(得分:0)

plz检查这个,它给出了什么是调试

的摘要

http://www.indiastudychannel.com/resources/102306-Debugging-Software-Engineering.aspx