学习C++的时候,对于cpp进行调试是不可避免的
demo.cpp
下面开始编译该程序
得到demo可执行文件
运行可执行文件
下面是进行gdb调试的方法
命名名字 | 描述 |
run(r) | 启动程序 |
start(s) | 启动,停留在main函数,分步测试 |
next(n) | 下一条指令 |
step | 下一条指令,进入到函数内部 |
quit | 退出gdb |
set +参数名=值 | 设置启动参数 |
display | 查看变量,具体什么时候变化 |
undisplay | 删除显示变量,查看编号 |
list | 显示代码(一次显示十行) |
break+行数 | 设置断点 |
info b | 查看断点 |
del +断点号 | 删除断点 |
continue(c) | 进入到下一个断点 |
print(p) | 查看一个变量的值 |
如果有bug了,这样一个一个找断点是不是太麻烦了?我也觉得
不是说核心已转储嘛?那我们直接看core文件吧
正常情况下是不会出现core这个文件的,因为此时他的文件大小为0
那我们就把这个文件大小设置为一个正整数
一般有两种方法
- ulimit -c +大小
- ulimit -c unlimited
再来看看core文件大小
好了,现在加上这个core文件一起进行gdb吧
如果还是好难看懂直接使用where命令
耶斯莫拉!