GDB中run命令的正确用法?

基础用法

  1. 启动程序
    在GDB中加载程序后(gdb ./my_program),输入 r 直接运行:

    (gdb) r

    程序会从头执行,直到遇到断点、崩溃或正常结束。

  2. 带参数运行
    若程序需命令行参数,在 r 后直接添加:

    (gdb) r arg1 arg2 "arg with space"

    示例:调试 ./server -p 8080 时,输入 r -p 8080

  3. 重定向输入/输出
    使用 <> 重定向标准流:

    (gdb) r < input.txt > output.log 2>&1
    • < input.txt:从文件读取输入
    • > output.log:输出重定向到文件
    • 2>&1:合并错误流到输出流

高级控制

  1. 设置环境变量
    set environment 定义运行时环境变量:

    (gdb) set env LD_PRELOAD=/path/to/lib.so
    (gdb) r
  2. 运行到指定位置
    结合断点控制执行流程:

    • main 函数设断点:b main
    • 运行到断点处暂停:r
    • 继续执行到第20行:until 20
  3. 传递信号管理
    控制程序接收的信号:

    (gdb) handle SIGINT nostop  # 忽略SIGINT中断
    (gdb) r

常见问题解决

  • 错误提示 No executable specified, use 'file'
    未加载可执行文件,需先输入 file ./my_program

  • 重新运行程序
    输入 r 会重启程序,保留当前断点和变量设置。

  • 程序崩溃时
    GDB自动暂停,用 bt 查看崩溃堆栈,info registers 检查寄存器状态。

  • 调试多进程程序
    使用 set follow-fork-mode child 跟踪子进程。


实用技巧

  1. 条件运行
    仅当条件满足时启动:

    (gdb) break main if argc > 1
    (gdb) r
  2. 记录执行轨迹
    配合日志功能复现问题:

    (gdb) set trace-commands on
    (gdb) r
  3. start 命令区别

    • start:暂停在 main 函数首行(自动设临时断点)
    • run:直接执行,依赖手动断点控制

r 是GDB中控制程序执行的入口命令,核心要点包括:

  1. 基础运行:r [参数]
  2. 重定向:r < in > out
  3. 环境控制:set env 预配置变量
  4. 协同断点:先设断点再运行
  5. 错误诊断:崩溃时用 bt 分析堆栈

引用说明基于GDB 13.2官方手册(GDB Documentation)及Linux调试实践,GDB命令遵循POSIX标准,适用于Linux/macOS/WSL环境。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6959.html

(0)
酷番叔酷番叔
上一篇 2025年7月10日 10:58
下一篇 2025年7月10日 11:35

相关推荐

  • 如何通过开始菜单搜索最快?

    点击屏幕左下角的 Windows徽标(开始按钮),在底部搜索框中输入 cmd 或 命令提示符,搜索结果会立即显示 “cmd.exe” 程序,单击它即可打开命令提示符窗口,方法2:使用开始菜单程序列表单击 开始按钮 → 选择 “所有程序”,展开 “附件” 文件夹,在列表中单击 “命令提示符” 图标,方法3:运行对……

    2025年7月2日
    5600
  • 安全关机方法,图形与命令行操作指南

    安全关机需先保存工作,图形界面通过开始菜单或系统菜单选择关机;命令行中Windows用shutdown /s /t 0,Linux/macOS用sudo shutdown -h now或poweroff。

    2025年6月22日
    5600
  • 安全必读,你准备好了吗?

    使用前必须仔细阅读并严格遵守所有安全须知,操作前确认满足全部前提条件,确保自身及他人安全。

    2025年6月18日
    5700
  • 如何轻松掌握自动化筛选宏命令?

    掌握自动化技能可提升工作效率,本教程将一步步指导你设置筛选宏命令,助你轻松实现数据自动化处理。

    2025年7月7日
    5000
  • 如何用命令快速安装.NET 3.5?

    在Windows 10/11系统中,.NET Framework 3.5是运行旧版软件的必要组件,当系统未预装或需手动修复时,可通过命令行工具快速安装,以下是两种经微软官方验证的方法:使用DISM命令(推荐)适用场景:联网环境或拥有Windows安装镜像时操作步骤:以管理员身份运行命令提示符(CMD)或 Pow……

    2025年6月27日
    5200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信