我们发布软件有debug和release版本 gcc/g++默认模式是release模式,不是dubug
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上-g 选项,如果没有添加,程序无法被编译,程序要调试必须是debug模式。
这样我们make后就是debug程序。也能运行,但是体积更大,因为内部有调试信息,可以供程序员调试。
五、常用快捷键
gdb 支持类似 shell 的快捷键,提高操作效率:
↑/↓:查看历史命令(避免重复输入) Tab:自动补全命令或文件名 Ctrl + c:中断当前正在执行的 gdb 命令(如程序运行时强制暂停)
要先安装
然后cgdb xxx
这样上面是代码界面,下面是调试界面,比gdb方便多了
c跳到下一个断点,条件断点的使用c跳,可以使用条件都安到也可以condition 添加条件断点
每一次函数调用的过程就是形成栈栈帧的过程 函数调用就是入栈的过程
这里result具有常量属性,是写在寄存器中,具有常属性
这里汇编语言就是call了Sum函数后把值存在寄存器中,然后把eax寄存器里的值赋值给函数内部栈上的一个临时变量n。
注意: • 条件断点添加常⻅两种⽅式:1. 新增 2. 给已有断点追加 • 注意两者的语法有区别,不要写错了。 • 新增: b ⾏号/⽂件名:⾏号/函数名 if i == 30(条件) • 给已有断点追加:condition 2 i==30, 其中2是已有断点编号,没有if