[英]How to change a variable value on conditional breakpoint in visual studio 2015
[英]Set Visual Studio (conditional) breakpoint on local variable value
我正在嘗試調試一種方法,該方法除了其他方面之外,還將項添加到方法本地的列表中。
但是,每隔一段時間,列表大小就會被設置為零“中游”。 我想設置調試器在列表大小變為零時中斷,但我不知道如何,並且會感謝有關如何執行此操作的任何指針。
謝謝。
在C#中
if(theList.Count == 0){
//do something meaningless here .e.g.
int i = 1; // << set your breakpoint here
}
在VB.NET中
If theList.Count = 0 Then
'do something meaningless here .e.g.
Dim i = 1; ' << set your breakpoint here
End If
為了完整起見,這里是C ++版本:
if(theList->Count == 0){
//do something meaningless here .e.g.
int i = 1; // << set your breakpoint here
}
我可以為Visual Studio 2005提供部分答案。如果打開“斷點”窗口(Alt + F9),您將獲得斷點列表。 右鍵單擊所需的斷點,然后選擇“條件”。 然后把你想要的條件。
您已經建議了兩個主要選項:1。條件斷點2.檢查錯誤值的代碼,如果發生這種情況,則使用斷點
第一個選項是最簡單和最好的選擇,但在大型循環中它很快就會很慢! 如果你循環100次千次迭代,唯一真正的選擇是#2。 在選項#1中,cpu在每次迭代時都會進入調試器,然后它會評估條件,如果break的條件為false,它只會繼續執行程序。 當它發生數千次時這很慢,如果你只循環1000次它實際上很慢(當然取決於硬件)
因為我懷疑你真的想要一個“全局”斷點條件,如果滿足某個條件(數組大小== 0)就應該破壞程序,不幸的是,根據我的知識,這不存在。 我已經制作了一個調試函數來檢查條件,如果它是真的它做了一些沒有意義的事情,我有一個斷點設置(即選項2),然后我經常調用該函數,我懷疑原來的失敗。 當系統中斷時,您可以使用調用堆棧來識別故障位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.