Linux下调试器GDB的简单使用图解

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下调试器GDB的简单使用图解相关的知识,希望对你有一定的参考价值。

gdb是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。

当前是虚拟机上的Ubuntu系统;敲Ctrl+Alt+t,打开控制台终端;

which gcc命令,查看gcc的安装目录;    gcc -v命令,查看gcc版本;

命令行输入 vi test.c,回车,进入vi编辑器编辑test.c的代码;进入以后,敲i键,进入vi的插入模式,然后可以输入代码;输入完,敲ESC退出插入模式,再敲冒号,切换到底行模式,此时在编辑器底部出现冒号;在冒号后面输入wq,回车,保存退出;

看一下test.c有了;

然后用gcc命令编译;加上-g参数,这是把调试信息加入到构建出的可执行文件中;构建出可执行文件test;

输入 gdb test,开始进入到test程序的调试;出现 (gdb) 的提示符;

输入 L 命令,可查看源代码;

输入 b 6,在第6行设置一个断点;

如果程序已经执行,输入 continue 或 c,继续执行;

输入 run 执行程序,遇到断点停止;停留在第1个断点,行6处,如下图;

此时可以用 print 变量名,来查看变量的值,目前没有变量;

输入bt命令看一下;backtrace 命令可以在遇到断点或异常而暂停执行时显示栈帧,该命令简写为 bt;

也可以用 info reg 命令,查看寄存器;

输入 step ,执行到下一句;再输入 step,已过了程序尾;

单步执行的意思时根据源代码一行一行地执行。执行源代码中一行的命令为 next ,简写为 n。执行时如果遇到函数调用,想执行到函数内部,使用 step 命令,简写为 p。
如果要逐条执行汇编指令,可以分别使用 nexti 和 stepi 命令。

 

下回继续;

以上是关于Linux下调试器GDB的简单使用图解的主要内容,如果未能解决你的问题,请参考以下文章

makefile简单脚本编写和Linux调试器gdb的简单应用

如何在Docker内部使用gdb调试器

LINUX下GDB反汇编和调试

linux下使用gdb调试崩溃和死锁实例

linux 下面怎么用gdb调试多个.c文件?

iMX6Q调试篇-Linux程序开发使用gdb调试