一份简洁的GDB使用小结
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
调试
其他照旧
调试正在运行进程
a.out &
//后台运行,返回一个pid
gdb -p pid
其余照旧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律