GDB基础知识之暂停/恢复程序02

        当以 gdb <program>方式启动 gdb 后,gdb 会在 PATH 路径和当前目录中搜索<program>的源文件。如要确认 gdb 是否读到源文件,可使用 l 或 list 命令,看看 gdb 是否能列出源代码。没有搜索到可以在gdb中通过dir命令设置源码搜索路径。

1 run之前可能要做的事情

在 gdb 中,运行程序使用 r 或是 run 命令。程序的运行,你有可能需要设置下面四方面的事。

  • 程序运行参数
    set args 可指定运行时参数。(如:set args 10 20 30 40 50)
    show args 命令可以查看设置好的运行参数。
  • 运行环境
    path <dir> 可设定程序的运行路径。
    show paths 查看程序的运行路径。
    set environment varname [=value] 设置环境变量。如:set env USER=hma
    show environment [varname] 查看环境变量。
  • 工作目录
    cd <dir> 相当于 shell 的 cd 命令。
    pwd 显示当前的所在目录。
  • 程序的输入输出
    info terminal 显示你程序用到的终端的模式。
    使用重定向控制程序输出。如:run > outfile
    tty 命令可以指写输入输出的终端设备。如:tty /dev/ttyb

2 暂停/恢复程序运行

        调试程序中,暂停程序运行是必须的,GDB 可以方便地暂停程序的运行。可以设置程序的在哪行停住,在什么条件下停住,在收到什么信号时停往等等。以便于查看运行时的变量,以及运行时的流程。

        当进程被 gdb 停住时,可以使用 info program 来查看程序的是否在运行,进程号,被暂停的原因。在 gdb 中,我们可以有以下几种暂停方式:断点(BreakPoint)、观察点(WatchPoint)、捕捉点(CatchPoint)、信号(Signals)、线程停止(Thread Stops)。如果要恢复程序运行,可以使用 c 或是 continue 命令。

2.1 设置断点(BreakPoint)

        正面有几点设置断点的方法:

  • break <function>

        在进入指定函数时停住。C++中可以使用 class::function或 function(type,type)
格式来指定函数名。

  • break <linenum>
    在指定行号停住。
  • break + offset or break - offset
    在当前行号的前面或后面的 offset 行停住。offiset 为自然数。
  • break filename:linenum
    在源文件 filename 的 linenum 行处停住。
  • break filename:function
    在源文件 filename 的 functio
  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽箬酱咧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值