【Linux】调试工具gdb

目录

前言

一、前情了解

二、gdb常用命令

1.基本指令

2.断点

3.调试过程

4.查看内容


前言

gdb是Linux环境下了一个调试工具,在代码运行出现问题时,我们可以通过它来进行调试,找出问题的所在。本文来带大家来了解一下gdb的使用方法。

一、前情了解

在使用gdb之前,代码要用gcc进行编译。编译之后得到的可执行文件才能使用gdb来调试。但是要注意,gcc要加上”-g“这个选项,从而得到debug版本的可执行程序,这种版本的程序中包含着调试信息。由于包含调试信息,所以debug版本的可执行程序较大。如下图所示:

【Linux】调试工具gdb_第1张图片

 我可以通过如下指令来查看文件信息:

readelf -S 
# readelf用来查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件
# -S用来读取代码的各个段

release版本的查询不到调试信息,但是debug版本的可以查到。入下图:

【Linux】调试工具gdb_第2张图片 

二、gdb常用命令

1.基本指令

  • gdb + 文件命:对此文件开始调试
  • quit:退出gdb
  • l + 行号:显示源代码,接着上次的位置向下,每次10行

注:gdb会记录最近一条命令,如果下一条命令和上一条相同,直接回车即可 

2.断点

用vs中调试的按键对比:

  • b + 行号:给这一行打上断点
  • info + b:查看当前已有的断点
  • d + 断点编号(通过”info + b“来查看):删除断点
  • r(F5):开始调试,转跳到第一个断点,如果没有断点,调试直接结束
  • c(多次F5):跳到下一个断点出停下来
  • disable / enable + 断点编号:关闭 / 打开断点

3.调试过程

  • n(F10):逐过程调试
  • s(F11):逐语句调试
  • finish:跑完当前函数就停下来
  • until + 行号:转跳到指定行(不建议使用)
  • bt:查看当前调用的堆栈

4.查看内容

  • p + 变量名:打印变量的内容
  • display + 变量名:此变量常显示
  • undisplay + 变量编号:此编号的变量取消常显示

你可能感兴趣的:(Linux,linux)