break 断点

  1. alias –> b
  2. info b

    1. 断点详情
  3. break 3 (在第 3 行设置断点)
  4. break functionName

    1. 在函数 functionName 处中断
  5. info breakpoints
  6. diable/enable 1 (breakpoint number)

    1. 禁用/启用断点

list 源代码查看

  1. list 3 (以第 3 行为中心的上下 10 行内容)
  2. list

    1. 向下继续列出 10 行代码
    2. 代码不足 10 行,列出剩余部份
    3. 执行过程中

      1. 将要执行的“代码”, 上下 10 行

run

  1. alias –> r

continue

  1. alias –> c

display 查看变量

  1. alias –> disp
  2. disp arr

    1. 添加监控
    2. 把 arr 变量加入到监控的变量中
  3. disp

    1. 显示监控的变量
  4. disp var*3

    1. 可以进行运算
  5. info disp

    1. 每一个监控的详情
    2. 其中表头“Enb” –> enable or not

next and step

  1. next — alias –> n

    1. next 3 (向下执行 3 条语句)
    2. next (乡下执行 1 条语句)
    3. 遇到函数,不进入函数

      1. 把函数当成一个语句
  2. step — alias –> s

    1. step 3
    2. step
    3. 遇到函数,进入函数
  3. next <–> step

    1. 一个不进入,一个进入函数

finish

  • 结束当前函数

watch

  1. 一直查看一个变量
  2. 只能在一个变量的作用域内,该命令才能生效
  3. watch var
  4. 与 display 命令区别

    1. 同时显示,旧值与新值
    2. watch 更适合查看一个变量的连续变化
    3. display 更适合看多个变量的变化
  5. 以一个 run 命令运行为作用域

    1. 下一次运行 run, 之前的 watch 失效

print

  1. 只查看变量一次
  2. print var
  3. print &var
  4. print *var

set

  1. 设置变量的值
  2. 用法

    1. set var name=value
    2. eg: set var time=11

backtrace

  1. alias –> bt
  2. backtrace

    1. 查看 stack 堆栈信息
    2. 函数的调用信息
  3. eg:

    1
    2
    
    #0  test () at hello.cpp:30
    #1  0x0000000000400902 in main () at hello.cpp:18

frame

  1. alias –> f
  2. 选择 stack 中哪一层
  3. frame 2

    1. 选择 stack 第二层(从 0 开始计数)
  4. frame -2

    1. 选择倒数第二层
    2. 负号代表倒数
  5. info frame

    1. 输出这一层的详细信息
    2. eg:

      1
      2
      3
      4
      5
      6
      7
      8
      
          Stack level 1, frame at 0x7fffffffd690:
          rip = 0x400902 in main (hello.cpp:18); saved rip = 0x7ffff76ab830
          caller of frame at 0x7fffffffd670
          source language c++.
          Arglist at 0x7fffffffd680, args:
          Locals at 0x7fffffffd680, Previous frame's sp is 0x7fffffffd690
          Saved registers:
           rbp at 0x7fffffffd680, rip at 0x7fffffffd688

down

  1. 向 stack 层数“小”的方向移动
  2. down 2

    1. 移动两层
  3. down

    1. 移动一层

up

  1. 向 stack 层数“大”的方向移动
  2. down 2

    1. 移动两层
  3. down

    1. 移动一层

down-silently

不输出多余信息

up-silently

info

  1. alias –> i
  2. 与其它命令一齐使用
  3. info –> information –> detail

info args

info locals

info catch

attach

  1. attach pid
  2. 用于调试运行中的软件 process id