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();
