【linux基础】linux中的开发工具(4)--调试器gdb的使用

目录

  • 前言
  • 一,背景
  • 二,gdb的使用
    • [1. 启动 gdb 调试器:](#1. 启动 gdb 调试器:)
    • [2. 罗列代码信息](#2. 罗列代码信息)
    • [3. 运行程序](#3. 运行程序)
    • [4. 有关断点的操作](#4. 有关断点的操作)
      • [(1) 打断点](#(1) 打断点)
      • [(2) 查看断点](#(2) 查看断点)
      • [(3) 删除断点](#(3) 删除断点)
      • [(4) 在一次调试中,断点是递增的](#(4) 在一次调试中,断点是递增的)
      • [(5) 关闭断点](#(5) 关闭断点)
      • [(6) 开启断点](#(6) 开启断点)
      • [(7) 逐过程调试,相当于 F10](#(7) 逐过程调试,相当于 F10)
      • [(8) 逐语句调试,相当于 F11](#(8) 逐语句调试,相当于 F11)
      • [(9) 查看变量或地址,相当于监视窗口](#(9) 查看变量或地址,相当于监视窗口)
      • [(10) 在调试中,常显示变量的值或地址](#(10) 在调试中,常显示变量的值或地址)
      • [(11) 取消常显示](#(11) 取消常显示)
      • [(12) 运行到下一个断点处](#(12) 运行到下一个断点处)
      • [(13) 直接运行结束所在函数,就停下](#(13) 直接运行结束所在函数,就停下)
      • [(14) 跳转至指定行,运行中间代码](#(14) 跳转至指定行,运行中间代码)
      • [(15) 退出 gdb](#(15) 退出 gdb)

前言

通过前面的学习我们已经会通过vim,gcc/g++和makefile构建出完整的代码程序了,但是光写出代码还不够,代码运行出错了该怎么调试呢?本篇文章就会介绍linux中的调试器--gdb的使用。

一,背景

(1) 程序的发布方式有两种,debug模式和release模式。
(2) Linux 中 gcc/g++出来的二进制程序,默认是release模式。
(3) 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。

下面来查看增加的一些调试信息:


二,gdb的使用

1. 启动 gdb 调试器:

使用:gdb 调试文件

2. 罗列代码信息

方式1:

使用:l 文件名: 数字 或者 l 文件名: 函数名

方式2:

使用:l 文件名: 0,再一直按回车

方式3:

使用:l 数字 .查找指定行

3. 运行程序

使用: r

4. 有关断点的操作

这里先罗列出调试文件代码,下面将根据这份代码进行有关断点的操作。

(1) 打断点

(2) 查看断点

(3) 删除断点

(4) 在一次调试中,断点是递增的

(5) 关闭断点

(6) 开启断点

(7) 逐过程调试,相当于 F10

(8) 逐语句调试,相当于 F11

(9) 查看变量或地址,相当于监视窗口

(10) 在调试中,常显示变量的值或地址

(11) 取消常显示

(12) 运行到下一个断点处

(13) 直接运行结束所在函数,就停下

(14) 跳转至指定行,运行中间代码

(15) 退出 gdb

直接输入 quit 即可。

相关推荐
树℡独6 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
小小管写大大码7 小时前
如何让vscode变得更智能?vscode接入claude实现自动编程
运维·ide·vscode·自动化·编辑器·ai编程·腾讯云ai代码助手
嵩山小老虎7 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模7 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
zhang133830890757 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
a41324477 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler7 小时前
buildroot System configuration
java·服务器·数据库
津津有味道7 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.8 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
物联网软硬件开发-轨物科技8 小时前
【轨物洞见】告别“被动维修”!预测性运维如何重塑老旧电站的资产价值?
运维·人工智能