注册 登录
北京交通大学论坛-知行信息交流平台 返回首页

baluster的个人空间 https://zhixing.bjtu.edu.cn/?264063 [收藏] [复制] [分享] [RSS]

日志

gdb使用方法

已有 1552 次阅读2013-3-21 18:52

实例调试程序 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 断点号

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

手机版|北京交通大学论坛-知行信息交流平台 ( BJTUICP备13011901号 )

GMT+8, 2026-11-5 22:34

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

返回顶部