GDB使用说明

  1. GDB 常用指令

GDB 常用指令

在使用 GDB(GNU Debugger)调试程序时,了解常用指令有助于快速解决问题、分析代码并找出错误。以下是一些 GDB 常用指令,涵盖了启动、断点设置、单步执行、变量查看、堆栈分析、错误追踪等方面。

  • 启动和加载程序
    • 启动 GDB:gdb ./my_program,用指定的程序启动 GDB。
    • 加载核心转储文件:gdb ./my_program core,用于调试崩溃后生成的核心转储文件。
  • 运行和停止程序
    • 运行程序:run,启动程序。如果需要传递命令行参数,可以在后面加上参数列表:run arg1 arg2。
    • 停止程序:使用 Ctrl+C 可以中断程序的运行,让 GDB 进入调试模式。
    • 继续运行:continue 或 c,继续运行程序,直到下一个断点或异常。
    • 重启程序:run,在 GDB 内部重新启动程序。
  • 断点设置与管理
    • 设置断点:break 或 b,用于设置断点。可以指定行号、函数名或文件名:
    • b 25 在第 25 行设置断点。
    • b main 在 main 函数设置断点。
    • 查看断点:info breakpoints 或 i b,列出当前所有断点。
    • 删除断点:delete 或 d,可以删除一个或多个断点。例如,d 1 删除第一个断点。
    • 启用/禁用断点:enable 或 disable,用于启用或禁用特定断点。
  • 单步执行和检查状态
    • 单步执行:step 或 s,单步进入函数内部。
    • 逐行执行:next 或 n,逐行执行但不进入函数内部。
    • 跳过函数:finish,跳过当前函数,返回调用它的上下文。
    • 检查当前位置:where 或 bt,查看调用栈,追踪程序位置。
  • 查看变量和内存
    • 查看变量:print 或 p,用于显示变量的值。例如,p x 显示变量 x 的值。
    • 查看内存:x,检查内存内容。可以指定格式和范围。
    • x/10x 0x7ff… 显示从指定内存地址开始的 10 个字的十六进制值。
    • 查看局部变量:info locals,列出当前作用域中的所有局部变量。
    • 查看全局变量:info variables,列出所有全局变量。
  • 分析堆栈和错误
    • 查看调用栈:backtrace 或 bt,显示调用栈,帮助追踪函数调用顺序。
    • 切换栈帧:frame 或 f,切换到特定栈帧以查看其上下文。
    • 查看异常:当程序崩溃时,GDB 通常会显示错误信息。使用 bt 可以查看崩溃前的调用栈。
  • 其他实用命令
    • 重新编译和调试:在 GDB 中使用 make 可以重新编译程序,然后继续调试。
    • 设置条件断点:b 25 if x > 5,在满足条件时断点触发。
    • 查看源码:list 或 l,显示源码行。
    • 查看已加载库:info shared,查看所有加载的共享库。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com

文章标题:GDB使用说明

字数:722

本文作者:花落阁

发布时间:2024-05-05, 19:55:40

最后更新:2024-05-06, 09:54:14

原始链接:https://hualog.dns.navy/2024/05/05/GDB%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。