GDB调试方法及命令

文章目录

  • GDB基本命令

  • 调试程序

  • GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具。

  • 一般来说,GDB主要帮助你完成下面四个方面的功能:

    • 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序(按着自己的想法运行)
    • 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
    • 3、当程序被停住时,可以检查此时你的程序中所发生的事
    • 4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG
  • GDB支持以下编程语言 Ada、Assembly、C、C++、D、Fortran、Go、Objective-C、OpenCL、Modula-2、Pascal、Rust

GDB基本命令

启动与退出

命令 说明
gdb <program> 启动GDB并加载可执行程序
gdb <program> <core> 使用GDB调试core dump文件
gdb -p <pid> 附加到正在运行的进程
quitq 退出GDB
runr 运行程序
run <arg1> <arg2> ... 带参数运行程序

断点管理

执行控制

查看与监视

程序状态信息

调试程序

普通调式

bash 复制代码
# 编译带调试信息的程序
gcc -g -o test test.c

# 启动GDB
gdb ./test

# 在GDB中:
(gdb) break main
(gdb) run
(gdb) next
(gdb) print variable
(gdb) watch variable
(gdb) continue
(gdb) backtrace
(gdb) quit

调试core文件

  • 同时指定一个可执行程序和一个核心文件来启动:gdb program core

调试正在运行的进程

  • 可以指定一个进程ID作为第二个参数,或者使用选项"-p"
    • gdb program 1234
    • gdb -p 1234
相关推荐
海棠AI实验室3 天前
第十七章 调试与排错:读懂 Traceback 的方法论
python·pandas·调试
惆怅客12317 天前
在 vscode 中断点调试 ROS2 C++ 的办法
c++·vscode·调试·ros 2
骐骥117 天前
鸿蒙开发使用DevTools工具调试ArkWeb组件中的前端页面
前端·harmonyos·调试·arkweb·纯鸿蒙
Lenyiin18 天前
《 Linux 修炼全景指南: 八 》别再碎片化学习!掌控 Linux 开发工具链:gcc、g++、GDB、Bash、Python 与工程化实践
linux·python·bash·gdb·gcc·g++·lenyiin
charlie11451419121 天前
深入解构:MSVC 调试机制与 Visual Studio 调试器原理
c++·ide·windows·学习·visual studio·调试·现代c++
kali-Myon25 天前
快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题
运维·安全·docker·容器·gdb·pwn·tmux
水木姚姚1 个月前
VSCode 调试 C++ 之 cin 输入
c++·windows·vscode·开发工具·调试
newobut1 个月前
vscode远程调试python程序,基于debugpy库
vscode·python·调试·debugpy
赖small强1 个月前
【Linux C/C++开发】 GCC -g 调试参数深度解析与最佳实践
linux·c语言·c++·gdb·-g
ベadvance courageouslyミ1 个月前
GDB相关操作
gdb