gdb查看断点

  1. 查看断点

    • 两种方式

      • info breakpoints [list...]
      • info break [list...]
    • 作用

      • 表格的形式输出所有断点。
      • 断点有三种: 普通位置断点,检测数据变化型断点,捕获事件型断点。
      • [list...]表示查看指定编号的断点。
    • 输出表格

      • breakpoint numbers断点编号. m.n,m表示多进程调试时的进程编号,n则是对应进程的断点。
      • type什么类型的断点: 行级别调试断点,监测数据变化的监测断点,捕获事件的断点。
      • disposition 描述信息: 当前断点是触发后禁用或者是触发后删除。
      • enabled diabled 是否启用。
      • address断点位置,可能是程序虚拟地址,位置信息等,可能是未来断点pending,一般是共享库上的断点。multiple表示一个断点多个位置。
      • what 具体的断点信息,即设置时断点的条件,比如位置等。
  2. 案例

    • 查看

      chen@chen:~/cppfile/test$ gdb ./a.out -q
      Reading symbols from ./a.out...done.
      (gdb) break show
      Breakpoint 1 at 0x4004d6: show. (3 locations)
      (gdb) info breakpoints
      Num     Type           Disp Enb Address            What
      1       breakpoint     keep y   <MULTIPLE>
      1.1                         y     0x00000000004004d6 in show() at test.cpp:1
      1.2                         y     0x00000000004004e0 in show(int) at test.cpp:2
      1.3                         y     0x00000000004004ec in show(float) at test.cpp:3
      (gdb) !cat test.cpp
      void show(){}
      void show(int a){}
      void show(float b){}
      int main() {
      
      }
      
      • 一次设置了三个断点。
      • num编号为1.

      • type是普通调试断点。

      • Disp断点描述,keep表示一直存在的断点.

      • Enb禁用启用状态。

      • Address多个,下面一一进行了罗列

      • what即每个断点的信息.

    • 临时断点

      (gdb) tbreak show
      Note: breakpoint 1 also set at pc 0x4004ec.
      Note: breakpoint 1 also set at pc 0x4004e0.
      Note: breakpoint 1 also set at pc 0x4004d6.
      Temporary breakpoint 2 at 0x4004d6: show. (3 locations)
      (gdb) info breakpoints
      Num     Type           Disp Enb Address            What
      1       breakpoint     keep y   <MULTIPLE>
      1.1                         y     0x00000000004004d6 in show() at test.cpp:1
      1.2                         y     0x00000000004004e0 in show(int) at test.cpp:2
      1.3                         y     0x00000000004004ec in show(float) at test.cpp:3
      2       breakpoint     del  y   <MULTIPLE>
      2.1                         y     0x00000000004004d6 in show() at test.cpp:1
      2.2                         y     0x00000000004004e0 in show(int) at test.cpp:2
      2.3                         y     0x00000000004004ec in show(float) at test.cpp:3
      
      • 第二个断点的Disp变成了del,即一次性断点。
  3. 总结

    • 断点类型很多,信息可能会有轻微的差异。不过都是那么几种。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值