Prepare gdb
1.安装GDB
yum install gdb
2.查看安装
gdb --version
ubuntu中查看是否安装gdb软件包
rpm -qa |grep gdb
QuickStart
1.写程序 vim test.cpp
#include<iostream>
using namespace std;
int main(){
int arr[5]={1,2,3,4,5};
for(int i=0;i<5;i++){
cout<<arr[i]<<endl;
}
return 0;
}
备份cp test.c test1.c
2.编译 g++ test.cpp
3.g++ -g test.cpp
gdb a.out
进入gdb
list
查看代码
b 15
在15行打断点
info b
查看断点
r
run 运行
n
next 下一步
s
step 进入程序中下一个可执行函数
f
finish
p
print一个变量
quit
小技巧
1.shell 调用终端命令
如 shell ls
2.日志功能
set logging on
3.watchpoint
查看变量变还是没变
watch &i
不断n,若i变化会提示
info watchpoints
//查看哪几个点
调试core文件
序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下会产生一个叫做core的文件。
若不生成,查看ulimit命令
man ulimit
by reaserch ,we know ulimit -a
to watch if the core generated allowed;
if not , ulimit -c unlimited
g++ -g /a.out
ls
gdb a.out core.xxxx
调试
其他照旧