我已经学了几年的编程,用过debug frequently.But,我还是不理解debug的核心原理,它是如何工作的?单行调试是如何实现的?
以java语言为例。
CPU对调试实现有什么作用?
JVM为调试实现做了什么?
eclipse对调试实现做了什么?
可能上面列出的三个东西与调试没有任何关系。我只是猜测,我已经搜索了一段时间,但没有得到任何有用的东西(当然,调试本身是复杂的),我希望更简单的解释。
谢谢。
发布于 2012-10-29 15:50:21
每个处理器都有自己设计的调试机制。
对于x86处理器,处理器具有6个调试寄存器,这些寄存器存储调试断点和中断条件。本文简要介绍了英特尔x86处理器的调试机制:http://en.wikipedia.org/wiki/X86_debug_register
有关Java调试机制的情况,请参阅: Mukul Goel在问题下的评论流中指出的http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html。
发布于 2012-10-29 15:52:56
为了便于调试(使用断点等),编译器将某些附加信息插入到它生成的编译输出中(即二进制文件或Java中的JVM字节码文件)。此额外信息允许将编译输出的每一行映射到相应的源文件。
我还没有回答你问题的所有部分,但希望足以帮助你入门。查看以下资源:
发布于 2012-10-29 17:01:30
https://stackoverflow.com/questions/13117646
复制相似问题