【C语言】GDB调试方法

1 GDB基本概念

(1) GDB是GNU项目调试器,它允许在程序执行时查看“内部”发生了什么,或者在程序崩溃时正在做什么。
(2) GDB可以从以下4个方面来帮助你发现bug:

  • 启动程序,明确指出可能影响其性能的任何内容。
  • 使程序在指定条件下停止。
  • 检查程序停止时发生了什么。
  • 更改程序中的内容,这样你就可以尝试纠正一个错误的影响,并继续学习另一个错误。
    这些程序可能与GDB(本机)在同一台机器上执行,也可能在另一台机器(远程)上执行,或者在模拟器上执行。GDB可以在最流行的UNIX和Microsoft Windows变体上运行,也可以在macOS上运行。

2 GDB调试支持的计算机语言

GDB支持以下编程语言(按字母顺序):

  • Ada
  • Assembly
  • C
  • C++
  • D
  • Fortran
  • Go
  • Objective-C
  • OpenCL
  • Modula-2
  • Pascal
  • Rust

3 进入与退出GDB

本章主要讨论怎样去启动和退出GDB,主要关键点如下:

  • 输入“gdb”启动GDB;
  • 输入quit, exit或Ctrl-d退出GDB;

3.1 调用GDB

通过运行gdb程序调用gdb,一旦启动,gdb将从终端读取命令,指导用户告诉它退出。
你也可以使用各种参数和选项运行gdb,以便在开始阶段指定更多需要调试的内容。
这些描述的命令行选项目的是涵盖各种情况;在某些环境下,其中一些选项实际上可能不可用。
启动gdb最常用的方法是配置一个参数,指定一个可执行程序:

gdb program

你也可以在启动时同时指定一个可执行程序和内核文件:

gdb program core

你也可以指定一个进程作为第二个参数,或者如果你想要调试正在运行的进程的话,可以使用 -p。

gdb program 1234
gdb -p 1234

如果你想把GDB关联到进程1234,你可以使用-p可省略程序文件名。
利用第二个命令行参数(即core),需要一个完整的操作系统;当你采用gdb作为关联到裸板的远程调试器使用时,可能不存在任何“进程”的概念,并且通常无法获取到coredump文件。如果无法读取或者关联coredump文件,gdb将会触发告警。
你可以选择在可执行文件后使用–args让gdb将所有参数传递给下一级。该选项将停止选项处理。

gdb –args gcc -02 -c
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值