【问题标题】:What is the principle of debug? [duplicate]调试原理是什么? [复制]
【发布时间】:2012-10-18 12:46:42
【问题描述】:

我学了几年编程,经常使用debug,但还是不明白核心原理 debug,它是如何工作的?单行调试(step into)是如何实现的?

java 语言 为例。

CPU 为调试实现做了什么?

JVM 为调试实现做了什么?

eclipse 为调试实现做了什么?

可能是我上面列出的三件事与debug无关。我只是猜的。我google了一段时间,没有得到对我有用的东西(当然,调试本身很复杂),我希望解释得更简单。

谢谢。

【问题讨论】:

标签: java debugging computer-science


【解决方案1】:

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

对于 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在问题下的评论流中指出的那样。

【讨论】:

    【解决方案2】:

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

    我尚未回答您问题的所有部分,但希望足以帮助您入门。 查看这些资源:

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

    How does a debugger work?

    【讨论】:

      【解决方案3】:

      请检查一下,它提供了有关调试内容的摘要

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-25
        • 1970-01-01
        • 2012-01-16
        • 1970-01-01
        • 2012-11-26
        • 1970-01-01
        相关资源
        最近更新 更多