x86系列处理器从其第一代产品英特尔8086开始就提供了一条专门用来支持调试的指令,即INT 3,其机器码就是我们熟悉的0XCC,转换成十进制为-858993460,转换成汉字就是“烫”。

简单地说,这条指令的目的就是使CPU中断(break)到调试器,以供调试者对执行现场进行各种分析。当我们调试程序时,可以在可能有问题的地方插入一条INT 3指令,使CPU执行到这一点时停下来。这便是软件调试中经常用到的断点(breakpoint)功能,因此INT 3指令又被称为断点指令,如果因为缓冲区或堆栈溢出时程序指针意外指向了这些区域,那么便会因为遇到INT 3指令而马上中断到调试器。

INT 3,与int 3不同,INT是interrupt(中断)的缩写,在调试时,防止编译器把栈上的内容当作指令来执行。一旦编译器执行了0XCC,就会产生INT3中断。我们也可以在代码里直接添加INT3中断。单击启动调试即可。

#include<iostream>
using namespace  std;int main()
{int a=10;int b=20;_asm{INT 3};return 0;
}

为何栈的初始化为0XCC相关推荐

  1. c语言将数组初始化为1_C语言的数组初始化

    这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录 ...

  2. 数组,结构体初始化为0

    一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下<The C++ Pr ...

  3. bool 变量想为什么一般初始化为FALSE 比较好?

    bool 变量想为什么一般初始化为FALSE 比较好? bool 变量与"零值"进行比较的if 语句怎么写? bool bTestFlag = FALSE;//想想为什么一般初始化 ...

  4. c语言定义数组变量初始化为0,c语言数组初始化——int a[N] = {0};

    初学数组,以华科的<c 语言与程序设计>为教材,参考了<一站式学习c编程>,后者数组一章有串代码如下 int main(void) { int i, histogram[10] ...

  5. python中ht表示什么_如何看待某国内大公司Python面试题,有关dict中初始化为固定值?...

    职业发展 Python 如何看待某国内大公司Python面试题,有关dict中初始化为固定值? 阅读下面的代码,写出A0,A1至A6的最终值. A0 = dict(zip(('a','b','c',' ...

  6. c语言如何让字符串变成空字符,C语言初始化字符串 c语言 如何将已赋值的字符串初始化为空?...

    C语言数组字符串初始化问题恋爱语录:能牵手的时候,请别肩并肩,能拥抱的时候,请别手牵手,能相爱的时候,请别说分开:拥有了爱情,请别去碰暧昧 字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是 ...

  7. LS1028GPIO初始化为高电平添加按键

    LS1028 GPIO初始化为高电平 1. 修改RCW 以将GPIO3_DAT14初始化为高电平为例,默认是将用作SPI3_SCK,需要将其先复用为GPIO 修改RCW:firmware/rcw/ls ...

  8. c如何将数组初始化为0?

    转载自:http://www.cnblogs.com/programnote/p/4719078.html 如何将数组初始化为全0? C语言中,声明数组的语句: int arr[100]; 这样声明得 ...

  9. C语言数组初始化为非0值

    问题描述: C语言编程中,定义好数组后,通常建议将它初始化在使用.实际中,一般初始化为0, 只需在定义后,加上花括号,里面放个零,不管数组有多长,都可以全部初始化为0,比如 char a[20]={0 ...

最新文章

  1. 自定义Visual Studio IntelliTrace 智能跟踪
  2. fping的使用方法
  3. java--GC Root有哪些
  4. Qt学习笔记之QTextCodec
  5. Redis 主从复制(replication)
  6. mac os域名解析处理 清缓存 映射
  7. 【C#2.0】发挥匿名委托的威力!
  8. 数据库系统实训——实验四——视图
  9. 【Elasticsearch】了解Elasticsearch写入磁盘的数据
  10. [设计模式-结构型]享元模式(Flyweight )
  11. Python中的join函数
  12. quartus仿真29:JK触发器实现序列信号发生器0010111(分析)
  13. oracle驱动的区别吗,oracle10g下JDBC驱动包的区别
  14. Linux命令详解之 rm
  15. ajax参数该怎么传递?ajax参数传递
  16. nargin函数的用法
  17. AI溃败,被Dota2职业战队打蠢!独家专访OpenAI:我们发现一个Bug
  18. 如何封禁IP和IP段 看完这篇我会了
  19. 计算机证书图片无法保存,win7电脑JPG文件怎么保存为PDF文件
  20. 科技查新的新颖性是指什么?

热门文章

  1. .Net(C#)后台发送Http Get和Http Post请求的几种方法总结(可参考下)
  2. 什么是浏览器同源策略
  3. 冲压模具设计的方法与步骤
  4. cgroup资源配置
  5. [UTCTF2020]basic-crypto
  6. swift 【block】
  7. Java面试题:TCP三次握手如果失败会发生什么?
  8. FlvDownloader 2.0基本完成
  9. (原创)介绍一个优秀的图片压缩库Compressor
  10. 商会是很多做生意的老板最喜欢加入的组织