linux下gdb的使用

来源:互联网 发布:js namespace用法 编辑:程序博客网 时间:2024/06/06 07:48

首先很重要的一点是 比如我们当前的目录下有一个mian.c 文件我们直接gcc main.c 会生成a.out文件但是这种生成的文件是不能够被调试的。要使用下面的命令

gcc -g main.c -o main.out 这样才能调试。

还要注意一点的是如果我们在目录里面源文件main.c不在了被删除了是无法调试的、

具体使用如下

gcc -g main2.c -o main2.out

gdb ./main2.out

此时进入一个提示界面并且光标处于一个等待状态

输入l则展示代码

break具体打在某一行断点 示例 break 12 在第十二行打一个断点、

start  则是一行一行的调试

如图


到这里我们即将进入第14行代码 想进入change函数里 就不能继续输入n了。

输入s进入到change函数里


1处bt命令可以查看函数堆栈,2处是函数堆栈编号。当前是执行的change()  函数

3处代表切换到1这个函数栈里、

4处代表切换到0这个函数栈里

继续输入n则执行打印语句

会输出5处的结果。

然后就是调试结束。按下q退出。


原创粉丝点击