簡體   English   中英

在Visual Studio中調試時添加條目到列表

[英]Add entry to list while debugging in Visual Studio

我的代碼中有一點我添加了一個斷點。 當調試器在斷點處停止時,我想要做的是修改列表的內容(特別是在這種情況下,我想添加條目)。 如何在調試時修改列表的內容?

編輯:列表是字符串列表。

使用立即窗口(默認為CTRL + D,我使用C#鍵綁定,或者它在Debug> Windows菜單中)。

從那里只調用myList.Add(foo) ,它會回來說表達式已經被評估並且沒有值,但是發生添加foo的副作用。

同樣在監視窗口中,您可以執行單行語句(或更好的表達式)。

只需寫下:

myList.Add("myNewValue")

並按ENTER它應該工作(至少一直對我有用)

有一種技術可用於從斷點內注入代碼。 它很簡單,而且很有效。

  1. 設置斷點
  2. 右鍵單擊斷點,然后選擇“條件”
  3. 把你的代碼行放在條件中(它不必返回一個bool)

當您的斷點被命中時,代碼將執行,調試器將不會在斷點處停止(因為您沒有返回bool)。

我從Visual Studio技巧博客得到了這個提示: http//blogs.msdn.com/b/zainnab/archive/2010/05/04/set-a-complex-breakpoint-condition-vstipdebug0022.aspx

這是一個示例程序,說明了該技術:


        static void Main(string[] args)
        {
            List l = new List();
            Console.WriteLine(l[0]);
            System.Console.ReadLine();
        }

如果按原樣運行此代碼,您將獲得異常。 但是,在你的之前,添加一個斷點來訪問Console.WriteLine()行。

右鍵單擊斷點,然后選擇“條件”在條件對話框中,添加以下代碼:

l.Add("hello")

現在跑。

顯然,一個人可能會遇到很多這個“功能”的問題 - 您可以使用斷點更改應用程序的行為,使得代碼的獨立構建與在調試器中的計算機上運行時的行為不同。 所以,要非常小心......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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