gdb使用技巧

1.断点的设置

①普通断点: b n(注:n为行号),或者是break n。

此方法过于简单,不再举例说明。

②条件断点:b n if 逻辑表达式

注:以上两种断点类型中tbreak设置方法与break相同,只不过tbreak只在断点停一次,过后会自动将断点删除,break需要手动控制断点的删除和使能。

demo:

1       #include<iostream>
2       using namespace std;
3       int main()
4       {
5         int i=0;
6         while(i<100)
7         i++;
8         return 0;
9       }
(gdb) break 7 if i==55
Breakpoint 1 at 0x8048553: file test2.cpp, line 7.
(gdb) r
Starting program: /home/wo/mypro/2016123/test2


Breakpoint 1, main () at test2.cpp:7
7         i++;
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6.i686 libgcc-4.4.6-4.el6.i686 libstdc++-4.4.6-4.el6.i686
(gdb) p i
$1 = 55

③rbreak的特殊用法

rbreak 可以跟一个正则表达式。rbreak + 表达式的用法与grep + 表达式相似。即在所有与表达式匹配的函数入口都设置断点。

demo:

#include<iostream>
using namespace std;

int a,b;
void outputa()
{
  cout<<a;
}
void outputb()
{
  cout<<b;
}
int main()
{
  cin>>a>>b;
  outputa();
  outputb();
  return 0;
}

(gdb) rbreak output*
Breakpoint 1 at 0x80485fa: file test2.cpp, line 7.
void outputa();
Breakpoint 2 at 0x8048617: file test2.cpp, line 11.
void outputb();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值