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

相关推荐

  • asp表白网站

    在数字化时代,互联网已成为人们表达情感的重要载体,ASP(Active Server Pages)作为一种经典的Web开发技术,因其简单易学、功能强大,被广泛应用于构建动态网站,ASP表白网站凭借其个性化设计和互动性,成为许多人表达爱意的独特方式,本文将详细介绍ASP表白网站的特点、开发步骤、功能设计以及注意事……

    2025年12月5日
    20100
  • Ajax异步请求数据库数据,有何技术难题需克服?,跨域怎么办?

    Ajax异步请求数据库数据是现代Web应用实现无刷新动态交互的基石,其核心在于通过XMLHttpRequest或Fetch API与服务器端进行异步数据交换,并处理响应结果以更新页面视图,在2026年的技术栈下,推荐使用Fetch API结合async/await进行封装,并配合成熟的请求库(如Axios、SW……

    2026年7月20日
    9000
  • asp甘特图控件

    在项目管理中,甘特图是一种直观展示任务进度、依赖关系和资源分配的重要工具,对于基于ASP.NET开发的应用程序而言,选择合适的甘特图控件能够显著提升项目管理的效率和用户体验,本文将详细介绍ASP甘特图控件的核心功能、技术特点、应用场景及选择建议,帮助开发者更好地理解和应用这一工具,ASP甘特图控件的核心功能AS……

    2025年12月28日
    19600
  • 国内服务器平均延迟是多少?国内服务器延迟

    2026年国内服务器延迟通常在1-5毫秒(同城市/同机房)至20-50毫秒(跨省骨干网),对于绝大多数国内业务而言,这是一个几乎无感知的极速体验,但具体数值高度依赖于节点分布、网络运营商及线路类型,在云计算与边缘计算深度融合的2026年,网络延迟已不再是单纯的“快慢”问题,而是关乎用户体验转化率的核心指标,国内……

    2026年5月16日
    25900
  • 费用管理中心怎么用?费用管理中心功能详解,管理中心的费用管理操作指南

    费用管理中心是企业实现财务数字化转型的核心工具,通过自动化报销、预算控制和智能分析,能够帮助企业在2026年显著提升财务运营效率并降低合规风险,核心功能与价值费用报销自动化支持移动端、PC端多渠道提交,OCR识别发票信息,自动生成报销单,按预设规则自动审批,减少人工干预,平均缩短报销周期60%以上,对接企业ER……

    2026年8月21日
    7200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信