1. 蔚特号首页
  2. 问答百科

断点调试(设置断点的原理是什么?)

调试(设置断点的原理是什么?)

对于程序员来说,调试的时间往往比写程序的时间还要长。尤其是对于我这种主要写bug的程序员来说,一个好的调试器就意味着早点下班休息。现在有很多方便的调试器,包括著名的IDE如Visual Studio(VS),免费的Windbg和GDB等。添加断点也很简单,按一个键就行。但你有没有想过,调试器无法控制程序的执行顺序,为什么却能让CPU停在需要的地方?

今天我们就来揭开调试断点的神秘面纱,通过一个例子来看看调试器到底做了什么。调试器可以随意停止程序的执行,主要通过软件断点和硬件断点。

软件断点

软件断点是X86系统中的指令INT 3,其二进制代码操作码是0xCC。当程序执行INT 3指令时,会引起软件中断。操作系统的INT 3中断处理程序将寻找在该进程上注册的调试红豆博客试用处理程序。因此像Windbg和VS这样的调试器有机会作弊。

让我们首先通过一个例子来看看调试器做了什么:

#include int main (){// This loop takes some time so that we// get a chance to examine the address of// the breakpoint at the second printffor (int i = 1; i

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 ivillcn@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.evoote.com/article/84472.html

发表评论

登录后才能评论