Linux下gdb调试的几个简单命令

Linux下gdb应该是使用最广泛的调试方法。下面是一些最基本的gdb调试命令和一个栗子:

如果我们有如下的代码需要调试:(命名为test.cpp)

/*
test.cpp
test for gdb
author:Mew
*/

#include <stdio.h>

int add(int a, int b) {
	return a + b;
}

int main(int argc, char** argv) {
	int a = 1, b = 2;
	int c = add(a, b);
	printf("%d\n",c);
	return 0;	
}

文本编辑器中编辑好之后编译



然后我们可以用gdb来进行调试了

推荐gdbtui这个命令,比一般的gdb多了一个调试界面,不用像gdb一样在命令行窗口里面查看代码。

先介绍几个最基本的gdb命令

r: 运行程序(run)

b: 设置断点(break point)

n: 单步执行(如果这条语句调用了函数,不进入这个函数执行)(next)

s: 单步执行 (和n相对,会进入函数执行)(step)

c: 运行到断电之后继续运行 (continue)

p: 打印变量 (print)

q: 退出gdb (quit)

这只是最基本的几个命令,在实际的应用中这几个命令可能并不满足需求


下面是我们利用gdb来调试test.cpp

首先运行编译好的test可执行文件:


进入了调试界面:



上面的一部分可以看到代码,下面的部分可以输入gdb命令

我们先在第14行设置一个断点


然后在15行设置一个断点


用r来运行这个程序,发现在第14行执行停止


然后用c命令继续运行,运行到第二个断点(15行)


用s命令进入这个函数,并且用p打印变量值:


用n单步执行下一条语句,直到程序结束


用这样的方法可以调试linu下面的C++程序,单步、断点、打印变量值的操作还是很实用的


2015.6.8 更新

ulimit -c unlimited 允许程序生成core文件

gdb xxx core 使用core查看堆栈信息

bt 列出调用栈


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值