标签:
条件成立触发断点
设置条件断点的方法很随意,根据个人的调试习惯设置。可以设置普通的断点,然后右击该断点,选择条件,设置这个断点的条件;当然开可以只设置一个普通的断点,然后当程序运行到了这个断点的时候,右击该断点,选择条件,增加该断点的条件,然后点击继续(f5),这样程序就会继续往下执行,直到满足设置的条件时再次的停顿下来。
内存改变触发断点
有时候想知道一个指针什么时候被改变了,可以用这种方法。其实这种断点被称为数据断点,当程序处于调试的状态下,就可以新建一个数据断点,给一个内存地址,然后f5(继续)。当给的地址对应的内存空间中的数据发生变化的时候,就会产生中断。在非调试状态下是不能设置数据断点的。
看下面的程序,我要跟踪指针g_p的动态,只要这个指针指向的对象换成了其它的别的对象就中断(注意:这里不是指针指向的对象的内容改变,而是指向了另外的其它对象)。所以我们要跟踪的内存是g_p这个指针变量的物理存储空间(指针变量本身存放的内存地址),它的地址就是&p_g,注意不是p_g。
#include <stdio.h> int *g_p = 0; int g_nNum1 = 20; int g_nNum2 = 30; void Fun() { g_p = &g_nNum2; } void main() { int nTemp = 0; g_p = &g_nNum1; g_nNum1 = 90; nTemp++; Fun(); nTemp++; }
这样再f5(继续),当指针改变的时候,就会触发断点了。如下图:
标签:
原文地址:http://www.cnblogs.com/stemon/p/4513479.html