x86指令集里面,有一条神奇而特殊的指令"int 3".这条指令的机器代码就是一个字节的0xCC. CPU执行到int 3指令是,就会触发异常处理机制,这个时候调试器就有机会断下程序的执行。
于是在debug版本的程序中,编译器都会把所有的数据区都初始化为0xcc,这样子由于bug执行到了数据区的代码的时候,首先执行的就是int 3.这样子就能在bug出现的第一现场让程序停下来。
调试器实现断点功能也是基于int 3指令。设置断点时,会把对应的指令的首字节改为0xCC,这样执行到这条指令时,就能断下来了。


下一篇: 这是一个极开放的提问方式
上一篇: 高手和新手区别
标签:

欢迎转载,转载时必须以链接形式注明来自 【南京典乐科技】
专业服务:南京网站建设,南京网站制作,南京网站设计,南京网站制作公司
咨询电话:13851941123(7*24小时在线服务)
公司网址:本文地址:http://m.025app.com/news/detail_183.html

 
公司简介 | 联系我们 | 知识中心
Copyright © 南京典乐科技 版权所有
苏ICP备12085975号
首页
咨询电话
联系我们