zoukankan      html  css  js  c++  java
  • gdb便利用法

    1,不退出gdb,执行shell命令

    (gdb) shell ls
    a.out  foo  more.c  pipe1.c  test1.c  test.c
    (gdb) shell gcc test.c -g
    

    2,不退出gdb,执行make命令

    (gdb) make
    

    3,保存GDB 命令的输出到一个文件里

    • set logging on

      激活日志功能.

    • set logging off

      关闭日志功能.

    • set logging file file

      改变当前的logfile 名字. 默认的logfile 是‘gdb.txt’.

    • set logging overwrite [on|off]

      默认的,gdb 会以附加的方式保存日志。如果你想改为覆盖方式保存的话,可以设置为覆盖方式。

    • set logging redirect [on|off]

      默认的,gdb 输出会打印到终端和logfile。可以将终端重定向到logfile 里,如果你只要它输出到logfile 里。

    • show logging

      显示当前日志设置

    4,path和环境变量

    • path directory
      在PATH 环境变量的前头加上diretory(可执行程序的搜索路径)。

    • show paths

      显示可执行程序的搜索路径列表(PATH 环境变量)。

    • show environment [varname]

      打印名为varname 的环境变量的值。如果你没提供varname,打印所有的环境变量的名
      称和值。你可以缩写environment 为env.

    • set environment varname [=value]

    5,调试一个已经在运行的进程

    (gdb) attach process-id
    

    6,checkpoint功能

    在某些操作系统(目前只在GNU/Linux 上),GDB 可以保存一个程序状态的快照,称为检查点,以后可以跳回。跳回到检查点会撤销所有在检查点之后的变化。这些变化包括内存,寄存器,甚至系统状态(有些限制)。这样可以有效的及时回到在检查点设置的状态。
    因此,如果你单步调试到你认为你接近到快要发生错误的地方,你就可以保存一个检查点。接着,如果你不经意的走的太远错过了关键的状态,你可以回到检查点后再从那里开始,而不需要从头启动程序。
    检查点对于需要很长时间或者单步调试里bug 发生地方很远的情况下很有帮助。

    • checkpoint

      保存被调试程序当前执行状态的快照。checkpoint 命令不需要参数,但每个检查点都分
      配一个小整数标识,如同breakpoint 标识一样。

    • info checkpoints

      列出在当前被调试会话的检查点。对于每个检查点,信息显示如下:
      Checkpoint ID
      Process ID
      Code Address
      Source line, or label

      (gdb) info checkpoints
        1 process 20516 at 0x4006e9, file test.c, line 30
      * 0 process 20512 (main process) at 0x4006e9, file test.c, line 30
      
    • restart checkpoint-id

      在检查点号的状态上重新启动。所有程序变量,寄存器,栈帧等等都恢复到检查点上保
      存的状态。本质上将,gdb 会把时钟回拨到检查点所记录的时间。

    • delete checkpoint checkpoint-id

      删除以前保存的检查点

    c/c++ 学习互助QQ群:877684253 本人微信:xiaoshitou5854

  • 相关阅读:
    JS中声明变量的细节问题
    你不知道的var! 细节
    读书笔记:对象的属性
    手写new操作符
    slice
    全相等函数 isEqual
    几个面试题
    全相等函数
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 28. 对称的二叉树
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/12622203.html
Copyright © 2011-2022 走看看