GDB添加条件断点
01 #include <stdio.h>
0203 int main()
04 {
05 int cnt, len;
06 for (cnt = 0; cnt < 100000; cnt++)
07 {
08 printf("cnt = %d\n", cnt);
09 len = cnt + 10;
10 }
11 }
root@zengxiaolong:/tmp# gdb -q test
(gdb) l
1 #include <stdio.h>
2
3 int main()
4 {
5 int cnt, len;
6 for (cnt = 0; cnt < 100000; cnt++)
7 {
8 printf("cnt = %d\n", cnt);
9 len = cnt + 10;
10 }
(gdb) b test.c:8 if cnt == 5 // test.c的第8行,如果cnt等于5,将会设置断点
Breakpoint 1 at 0x804838e: file test.c, line 8.
(gdb) r
Starting program: /tmp/test
cnt = 0
cnt = 1
cnt = 2
cnt = 3
cnt = 4
Breakpoint 1, main () at test.c:8
8 printf("cnt = %d\n", cnt);
(gdb) watch len // 此时监测len的变化
Hardware watchpoint 2: len
(gdb) c
Continuing.
cnt = 5
Hardware watchpoint 2: len
Old value = 14
New value = 15
main () at test.c:6
6 for (cnt = 0; cnt < 100000; cnt++)
(gdb)
原文地址:http://hi.baidu.com/zengzhaonong/item/5049bb86a40a91ccef083d9e
在eclipse中怎么设置条件断点?
如果知道某个变量值在某个地方被错误地修改了,但不知道是在什么地方被改了。这时,我想设置一个条件断点,条件是每当这个变量的值被修改,程序就中断到那个修改了这个变量的地方。在VC里有这个功能,在eclipse里怎么也没找到。在eclipse里的断点窗口只能看到那些在某一行上设置的断点,且能为它设置触发条件,但问题是我本来就是想找到在哪一行出的问题,所以不可能预先在那行上设置行断点。
哪位大虾赐教一下!谢了!
1.在你要想停下的行上添加断点
2.在断点标记上单击右键,然后打开断点属性(breakpoint properties...)
3.在断点属性(breakpoint properties...)编辑对话框中勾选enable condition,并加入你的条件(注意不要加“if”)
原文地址:http://bbs.csdn.net/topics/290082656
================第二部分*-*调试C程序===============
1. 设置断点:双击相应程序行的左边栏,或右键左边栏
2. 进入调试状态:点击Run->Debug或按快捷键F11,或工具栏上的虫子图标
3. eclipse进入调试模式自动停在main函数的第一行,这一点区别于vs,
vs必须手动设置断点。
4. F6 单步调试
F5 进入函数
F7 跳出函数
F8 继续执行到下一个断点处
Ctrl+R运行到光标处
5. 设置断点后可以在断电上右键设置断点属性,设置条件断点。
右键断点-》断点属性-》common -》condition:
6. 查看动态数组内容,利用memory view 或者 memory browser view:
需要输入数组首元素地址,通过varibles view可以查看首地址。
注意:以上三个view可以通过Windows -》 show view -》选择相应view即可。
8. 反汇编程序。查看反汇编要先进入调试状态,然后通过DSF disassembly view即可查看。
DSF view也在 show view里面。
9. 其他View窗口。通过Windows-》show view可以选择很多有用的view。
比如Variebles view 可以随时查看程序中的变量变化情况。
Console view可以查看程序输出与错误输出,其实就是标准输出了
Problems view可以查看所有项目中的语法错误;
Registers view可以查看寄存器的内容;
原文地址:http://blog.csdn.net/challenge_c_plusplus/article/details/7364354