写C程序时,崩溃、死循环、逻辑错误总让人抓狂。GDB作为Linux下的调试神器,能帮你精准定位问题。本文用最直白的方式,说说怎么用GDB高效调试。
1、启动调试
编译时加-g选项:用gcc编译时加上-g,生成带调试信息的可执行文件。
三种启动方式:
gdb ./程序名:直接启动调试;
gdb --args ./程序名 参数:带参数启动;
gdb attach PID:调试正在运行的进程(先ps aux找PID)。
2、控制程序执行
断点操作:
break 行号/函数名:在指定位置设断点;
delete 断点编号:删除断点;
disable/enable 断点编号:临时禁用/启用断点。
单步执行:
next:执行下一行(不进入函数);
step:进入函数内部;
continue:继续运行到下一个断点或结束。
3、查看程序状态
变量检查:
print 变量名:查看变量当前值;
backtrace:查看函数调用栈(崩溃时找源头)。
内存检查:
x/格式 地址:查看内存内容(如x/4xw 0x1234查看4个整型)。
寄存器查看:info registers查看所有寄存器的值。
4、高级技巧
条件断点:break 行号 if 条件,满足条件才触发断点。
观察点:watch 变量名,变量值变化时自动暂停。
命令脚本:用commands 断点编号设置触发断点时自动执行的命令。
本文凡亿教育原创文章,转载请注明来源!