使用Visual Studio 2012 RC調試一些C++代碼時,我注意到一個奇怪的行爲,它帶有類成員函數的斷點和成員變量的值。Visual Studio 2012 RC可能存在的斷點問題?
當我在類成員函數上設置中斷點時,VS 2012將中斷點放在函數大括號中。現在,當鼠標懸停在函數使用的成員變量上時,該值始終爲「未初始化」。但是,按下F10跳到下一行(函數中的第一行),現在將成員變量更改爲正確的值。
這看起來像一個類的成員變量的值不加載,直到進入成員函數的第一行。但是這非常令人困惑 - 那麼打破花括號的意義何在呢? (如在功能設置斷點時是默認的。)
打破類的成員函數:(!它真的不是)
成員變量active
據說是true
步入到下一行與F10:
成員變量active
現在說是false
(這是正確的。)
我失去了一些東西在這裏還是這是在Visual Studio 2012 RC確實是個bug?
編輯:我找到了我的Visual Studio 2010副本,並嘗試了這一點。關於斷點的行爲是相同的。區別在於IntelliSense如何處理這種情況。在VS 2010中,IntelliSense在打開大括號時不會彈出工具提示,而在VS 2012中始終顯示工具提示。我認爲VS 2010的行爲好得多,以避免混淆。
Visual Studio 2010是否展現出相同的調試器行爲? – 2012-08-05 20:45:00
@JamesMcNellis我沒有Visual Studio 2010.對不起。 – 2012-08-05 20:46:29
我再也沒有安裝它。我一直認爲這是通過設計或是一個怪癖。基本上,當調試器斷開'{'時,'this'指針還沒有被初始化。 – 2012-08-05 20:47:08