Linux下的c/c++程序调试利器-----gdb/cgdb

本文介绍了GDB,一个在UNIX及UNIX-like系统下的强大调试工具,适用于命令行爱好者。通过一个简单程序示例,阐述了如何使用GDB进行断点设置、查看代码、单步调试、查看堆栈信息等基本操作。此外,还提到了CGDB,它是GDB的增强版,结合了GDB和VI的优点,提供了更友好的代码查看体验。
摘要由CSDN通过智能技术生成

gdb是UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。(来自百度百科)

下面通过一个简单的例子来阐述一下这个强大的调试工具吧!

//a.c
#include "stdio.h"
int func()
{
    return 1;
}

main(){
    int i, f=1;
    for(i=100000;i>0;i--)
    {
        f = f/i;
    }
    printf("%d %d\n", i, f);

    func();
}
>>> gcc -g -o test a.c
>>> ./test
0 0

好啦,很简单的一个程序,调用了一个函数,打印了一些循环的结果,即使这么简单的程序里也展示了一些注意事项,如果希望使用gdb调试程序必须加入编译参数-g。

使用下面的命令进入gdb的交互模式吧。

>>> gdb ./test
(gdb)

如果你的程序需要输入参数,可以用以下命令载入哦

>>> gdb --args ./test 1 2 3
(gdb)

list(简写:l)
其作用就是列出程序的源代码,默认每次显示10行。
list 行号:将显示当前文件以“行号”为中心的前后10行代码,如:list 12
list 函数名:将显示“函数名”所在函数的源代码,如:list main
list :不带参数,将接着上一次 list 命令的,输出下边的内容。

(gdb) l
1   #include "stdio.h"
2   int func()
3   {
4       return 1;
5   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值