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

相关推荐

  • 关系型数据库中属性具体指什么?数据库属性定义

    在关系型数据库中,属性(Attribute)是指表中的一列,用于描述实体(Entity)的某个特征或性质,它是构成关系模式的最小数据单元,与元组(Tuple/行)共同组成二维表结构,理解这一概念是掌握SQL查询、数据库设计规范及性能优化的基石,许多初学者常将“属性”与“字段”、“列”混淆,或在设计E-R图时难以……

    2026年6月9日
    8800
  • 关系型数据库优惠券,优惠力度大吗?适用哪些产品?

    2026年选择关系型数据库优惠券时,核心结论是:优先关注阿里云、腾讯云等头部云厂商针对“新购实例”或“存量续费”的阶梯式折扣策略,结合“按量付费转包年包月”的转换优惠,可实现最高70%的成本节省,且务必确认优惠是否包含高可用版及备份存储费用,在数字化转型进入深水区的2026年,数据库作为企业数据资产的核心载体……

    2026年6月7日
    6400
  • 网络会计安全案例,究竟隐藏着哪些隐患与挑战?网络会计安全有哪些隐患

    网络会计安全的核心在于构建“技术防御+制度管控+人员意识”的三位一体闭环体系,任何单一维度的缺失都可能导致不可逆的数据资产流失,随着2026年数字化转型的深入,企业财务数据已成为核心资产,网络攻击手段也从简单的病毒传播演变为针对财务系统的APT(高级持续性威胁)攻击,以下基于最新行业实践与权威标准,深度解析网络……

    2026年6月23日
    5000
  • 智能客服在国内外应用差异大吗?智能客服国内外应用差异

    国内智能客服已从单纯的“问答机器人”进化为具备全链路决策能力的“数字员工”,其核心价值在于通过AI大模型实现降本增效与体验升级的双重突破,行业现状:从工具到伙伴的范式转移技术驱动下的能力跃迁2026年,国内智能客服市场已彻底告别基于关键词匹配的早期阶段,依托生成式人工智能(AIGC)与大语言模型(LLM)的深度……

    2026年5月21日
    8900
  • 数字身份解决方案数据共享在国内如何平衡隐私与效率?数字身份数据共享隐私保护

    国内数字身份解决方案的数据共享核心在于基于“隐私计算+区块链”的分布式架构,实现“数据可用不可见”,在2026年已全面取代传统明文传输模式,成为金融、政务及医疗领域合规共享的标准范式,技术底层重构:从“集中存储”到“分布式信任”传统的数据共享模式依赖中心化数据库,存在单点故障与隐私泄露风险,2026年的主流方案……

    2026年5月27日
    7900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信