數據斷點

本篇博客是VisualStudio斷點調試系列文章的一部分,示例中使用的代碼available to downloadhtml

數據斷點是當前C++開發者能夠用的很是有用的特性。數據斷點讓你在一快指定的內存發生更改時中止執行。這能夠在解決腐敗問題方面很是有用的 。下面展現一下這個特性。看看咱們的代碼,咱們注意到PrintObject 的結果是不正確的。它的結果是27,可是咱們認爲結果必定是32。web

image

調查這個問題,咱們設置斷點在PrintObject 函數檢查加法的值。api

clip_image004

當咱們檢查這個咱們看到的pObj1->getMyInt() 的值是5,可是他剛纔在外面建立對象的時候是10。何時變的?咱們能夠設置一個數據斷點找出他。這樣作,首先咱們將設置一個斷點在對象的構造函數裏獲取m_myint的地址。函數

clip_image005

在這個斷點上咱們能看到值仍然是10。咱們也能看到地址。下一步在斷點窗口,咱們點擊New->New Data Breakpoint…post

clip_image006

而後在彈出窗裏,咱們輸入這個咱們觀察到的變量m_myint的地址。咱們選擇這個字節數是4,由於咱們看的是int類型的。clip_image007debug

而後你能在Breakpoints window看到這個新的數據斷點。調試

clip_image008

當我繼續執行程序,我看倒下面對話窗口。component

clip_image009

接着我被帶到源代碼處以便我看到m_myint 是在哪被修改的。server

clip_image010

概要
在過去的這一週裏,我發佈了斷點全部的種類,那些在Visual Studio裏使用的有很幫助的斷點。

我但願聽到你的關於那些斷點經驗的反饋。你是怎麼使用斷點的呢?你喜歡其餘的斷點的哪些特性呢?請在下面評論告訴我,或者在MSDN forumUser Voice Site上。htm

相關文章
相關標籤/搜索