概念
在使用Visual Studio進行debug的時候,設定斷點是最常用的、不可或缺的技術之一。大多數情況下,我們只需要在Visual Studio里按F9鍵,設定一個普通斷點即可。但是對於一些特殊情況,這一點可能就不太管用。典型的情況就是在次數很多的循環里,我們需要在特定條件下,程式中斷執行。這時候要使用條件斷點。條件斷點的關鍵是設定一個表達式,當表達式條件為真時,中斷執行。一般的情況下,這個表達式很好寫,如對於整型變數i,只需寫“i == 10",即可在i的值為10的時候中斷執行 。
使用要求
(1)不能有副作用(side effect);
(2)條件斷點表達式可以用幾個內建的函式,如strstr, strlen, strcmp, strncmp.......GetLastErr等,具體可以查閱msdn;
(3)條件斷點表達(expression)不受private等訪問控制符限制。
示例
(1)字元數組型
(2)std::string
std::string實際存數據的指針是 dataPtr = (str._BUF_SIZE <= str._Myres ? str._Bx._Ptr : str._Bx._Buf)也就是當數據小的時候放_Bx._Buf,以便為了最佳化性能或空間。