簡體   English   中英

在局部變量值上設置Visual Studio(條件)斷點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM