博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下C/C++调试工具GDB
阅读量:2812 次
发布时间:2019-05-13

本文共 1146 字,大约阅读时间需要 3 分钟。

实例调试程序 main.c :
#include <stdio.h>

int add_range(int low, int high)
{


int i, sum;
for (i = low; i <= high; i++)
sum = sum + i;
return sum;
}

int main(void)
{


int result[100];
result[0] = add_range(1, 10);
result[1] = add_range(1, 100);
printf("result[0]=%d\nresult[1]=%d\n", result[0], result[1]);
return 0;
}

以上函数add_range功能为从low加到high,基本调试步骤:
1.编译 
$ gcc -g main.c -o main
2.调试
$ gdb main
3.帮助
(gdb) help
4.从第几行列出代码
(gdb) list 10
(gdb) l 10
5.直接回车重复上一条命令
6.开始调试,gdb会停在main()函数变量定义后第一条语句
(gdb) start
7.执行下一条(不进入函数),执行到printf语句时会直接输出到终端
(gdb) next
(gdb) n
8.步进,进入函数
(gdb) step
(gdb) s
9.查看栈帧
(gdb) backtrace
(gdb) bt
10.选择栈帧
(gdb)frame 帧编号
(gdb)f 帧编号
11..显示当前栈帧局部变量
(gdb)info locals
(gdb)i locals
12.打印变量 
(gdb)print 变量
13.给变量赋值
(gdb)set var 变量=值
14.运行结束
(gdb) finish
15.退出
(gdb) quit

断点调试:
1.每次运行都显示变量
(gdb) display 参数
2.取消display
(gdb) undisplay 参数
3.设置断电
(gdb)break 行数
(gdb)b 行数
(gdb)b 文件名:行数   #在多文件情况下
4.运行至断点
(gdb)continue
(gdb)c
5.显示所有断点
(gdb) info breakpoints
(gdb) i breakpoints
6.删除某个断点
(gdb) delete breakpoints 断点号
7.条件断点
(gdb) break 断点行数 if 变量 != 0 
8.重新开始运行到断点
(gdb) run
(gdb) r
9.禁用断点
(gdb)disable breakpoints 断点号
10.启用断点
(gdb)enable 断点号

转载地址:http://ucjqd.baihongyu.com/

你可能感兴趣的文章
React Native在windows环境设置
查看>>
React Native项目结构
查看>>
Haproxy 8种算法+Session共享
查看>>
socket的原理
查看>>
zookeeper原理
查看>>
websocket作用及意义
查看>>
xdebug+WinCacheGrind+qcachegrind来分析脚本执行时间
查看>>
handsontable一个Excel一样的外观数据网格组件
查看>>
Python自然语言处理(NLP)工具小结
查看>>
简单、高性能、内嵌型、持久化的 K-V 数据库 NutsDB
查看>>
【ZOOKEEPER系列】Paxos、Raft、ZAB
查看>>
《Javascript权威指南第5版上》读书笔记2
查看>>
《Javascript权威指南第5版上》读书笔记3
查看>>
GridCard拖拽拉伸卡片(纯JS)
查看>>
Linux学习笔记
查看>>
wordpress建站插件和常见问题解决
查看>>
windows镜像资源大全(包括windows服务器系统)
查看>>
Easy之1141.查询近30天活跃用户数
查看>>
Easy之1142.过去30天的用户活动II
查看>>
Easy之1173.即时食物配送I
查看>>