7、Linux调试工具——GDB

一、GDB简介

  • GDB 是GUN 开源组织发布的一款强大的 Unix / Linux 下的程序调试工具。
  • GDB :GNU Debugger,是GNU工程为GNU操作系统开发的调试器,但它的使用不局限于GNU操作系统,GDB可以运行在UNIX、Linux甚至Microsoft Windows。
  • GDB可以调试C、C++、Objective-C、Pascal、Ada等语言编写的程序;被调试的程序可以跟GDB运行于同一台电脑,也可运行于不同电脑。
  • 使用GDB我们可以:–设置断点使程序停住–监视或修改程序中变量的值–跟踪代码执行过程

二、GDB使用

1. 安装gdb:

//终端输入
sudo apt-get install gdb

2.gdb 启动

gcc ac.c -o ac -g

通过上述命令对ac.c编译之后,使用下列命令进入到gdb调试:

3.gdb ac

开始对ac这个可执行文件进行调试

运行程序

r 是run的缩写,会自动运行程序到第一个断点处,若无断点,跑完整个程序

list [位置]

显示指定位置的周围的源代码

位置可由行号、文件名、函数名以及三者之间的组合来定位指定位置;

set listsize 20 # 每次list显示指定区域的20行代码,默认10行

show listsize

list linenumber #显示 linenumber附近的代码

list 50 #显示当前源文件的第50行的附近代码

list:默认10行

7、Linux调试工具——GDB_第1张图片

例如从第一行显示:

7、Linux调试工具——GDB_第2张图片

继续执行程序

c 是continue的缩写,会继续执行程序,直到遇到下一个断点

设置断点

b是breakpoint的缩写

b 行号例如b 8可在第八行设置一个断点

b 函数名称例如b main 可以在main函数位置设置一个断点

例如:设置断点查看断点

删除断点

d是Delete breakpoint的缩写

d 编号:例如d 1可删除我设置的第一个断点

单步执行源代码

s和n:两者都会执行下一步的程序源代码

不同的是,若下一步是一个函数,s会进入该函数中,等待你的指令。而n则会直接把这个函数一起执行完毕

单步执行汇编

si和ni跟s和n的功能类似,只不过执行的是汇编指令

显示变量的值

p是print的缩写

p 变量名例如p a会显示出变量a的值,如果查看变量地址使用 p &变量名

退出

q:quit的缩写,也可以使用Ctrl+D

x/4xb &ac

x/:将要查看某个地址所对应的内存

4:将要查看的内存块的个数

x:以十六进制显示(o八进制)

b:每块内存的字节数(b一个字节、h两个字节、w四个字节)

你可能感兴趣的:(C语言基础,linux,vim,编辑器)