程序運行出錯時, 添加斷點單步調試程序是檢查錯誤所在的基本方法. 但是當程序更加複雜時, 我們往往需要確定某個全局變量或者成員變量是在什麼時候被修改的. 這個時候使用普通的位置斷點(F9)
進行單步調試往往不能很好的確定到底是哪裏出現的問題.
F10, F11, F10, F10, F11, F10… 哎呀臥槽按過了, 又要重新來…
沒有什麼比這種情況更加令人惱火.
數據斷點
數據斷點可以讓程序在指定的一塊內存發生變化時停止運行.
添加數據斷點
數據斷點只能在調試狀態下添加 ( 畢竟你要指定一塊內存, 可以看到未運行時無法添加數據斷點 )
// 數據斷點示例
#include<iostream>
using namespace std;
int gVariable = 10;
int main()
{
cout << "gVariable = " << gVariable << endl;
// 命中數據斷點
gVariable = 20;
cout << "gVariable = " << gVariable << endl;
system( "PAUSE" );
return 0;
}
我們首先利用位置斷點將程序中斷在第6行的輸出語句上, 然後在”調試->新建斷點->新建數據斷點”中新建一個數據斷點.
通過監視可以看到運行時程序爲gVariable分配的內存地址是0x0032f000
這時我們按兩次F10, 第二次將執行賦值語句gVariable = 20; 此時將會命中之前的數據斷點.