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

本文介绍了在Ubuntu系统上使用GDB进行C程序调试的步骤。通过`gcc`编译器添加 `-g` 参数生成带有调试信息的可执行文件,然后利用GDB设置断点、查看源代码、单步执行、检查变量值及查看栈帧信息。通过`vi`编辑器创建并编辑源代码,然后使用`gcc`编译,最后通过`gdb`进行调试,熟悉GDB的基本操作。
摘要由CSDN通过智能技术生成

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 命令。

 

下回继续;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值