Linux Gdb调试初步

Gdb是一款GNU开发组织并发布的程序调试工具。

以下通过一个具体的例子来讲述Gdb将如何调试一个程序:

写一个test.c的程序:

#include<stdio.h>
void sum(int) ;
int main(){
	int i,n=0;
	sum(50) ;
	for( i=1 ; i<=50 ; ++i){
		n += i ;
	}
	printf("The sum of 1-50 is %d\n",n);
	return 0;
}
void sum(int m){
	int i,n=0;
	for(i=1;i<=m;++i){
		n += i ;
	}
	printf("The sum of 1 - m is %d\n",n);
}


编译并链接: gcc -Wall -o test test.c -g                               //这里的-g是将可执行文件(这是是指test)的调试信息添加到该可执行文件中去

(1) 启动Gdb 

命令:$gdb test

(2) 查看源文件

命令: $list(缩写为:“ l ”) ;

(3)设置断点

命令:$b number    这里的number是需要设置断点的行号

(4)查看断点的信息

命令:$info b         这里查看的是所有断点的信息

(5)断点的删除

命令:$delete num    这里的num是在info中断点号,从1,2,....开始

(6)运行代码:

命令:$run [ num ]                这里的【】表示可选项, 代表从该行开始run ,缺省时表示从程序的第一行开始运行

(7)查看变量的值

命令:$p  a             输出变量a的值

这里也可以用 $display(watch) b 在单步调试时自动设置一个查看变量(尤其是在for时的单步调试,可以输出每次该变量的结果)

(8)单步运行程序

命令1: $n  , 表示next ,即下一步

命令2:$s , step, 也表示下一步

两者的不同点就在于: 对于函数,n不进入函数的内部,直接跳过函数内部的单步(相当于VC里的step over ); 而s则进入函数的内部,在函数内部还是单步(step in)

(9) 恢复程序运行:

命令:$c     一直运行,直到遇到下一个breakpoint 或是程序的结尾。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值