使用gdb查看exit和_exit调用

通篇假设未曾使用过gdb,一般的发行版都会携带这个工具,要是没有,只能自己找找,如何安装了。

本文并未详细说明exit(_exit)里边详细过程,只是表述如何进入。

测试代码如下:

#include <stdio.h>
#include <stdlib.h>

void func()
{
     printf("atexit ");
}

int main(int argc, char* argv[])
{
     atexit(func);
     printf("stdio ");
     printf("exit ");

     exit(0);
}

将其输入test.cc当中

编译 
>> g++ -g -o test test.cc

启动gdb调试
>> gdb test

显示下代码输入list或者首字母l
>> l

显示如图:




在第19行处打上断点,输入break或者b
>> break 19

运行
>> run

运行之后,运行到断点处暂停,等待输入新的命令(如果不是显示如图,可以查看本文最后部分)




有两个命令,一个是next,一个是step。next会跳到下一步,step会进入到这个函数中(相当于VS上的F10和F11)
>> s

输入s手就可以跟踪了,接下来可以按照需求选择next或者step。

有一个便利的地方是,当输入一个命令后,直接按回车键,默认输入上一个命令。

退出调试
>> quit


如果是第一次调试,往往都会缺一些环境:




解决方案:

切换成root用户, 将use后的部分复制,即 debuginfo-install ...
然后在终端上粘贴运行,就如同yum install。

如果准备详细学习gdb,可以参考下边的博客,前面几章用于入门还是不错的,后面可以慢慢看,慢慢提高。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值