[英]Add entry to list while debugging in Visual Studio
我的代碼中有一點我添加了一個斷點。 當調試器在斷點處停止時,我想要做的是修改列表的內容(特別是在這種情況下,我想添加條目)。 如何在調試時修改列表的內容?
編輯:列表是字符串列表。
使用立即窗口(默認為CTRL + D,我使用C#鍵綁定,或者它在Debug> Windows菜單中)。
從那里只調用myList.Add(foo)
,它會回來說表達式已經被評估並且沒有值,但是發生添加foo的副作用。
同樣在監視窗口中,您可以執行單行語句(或更好的表達式)。
只需寫下:
myList.Add("myNewValue")
並按ENTER
它應該工作(至少一直對我有用)
有一種技術可用於從斷點內注入代碼。 它很簡單,而且很有效。
當您的斷點被命中時,代碼將執行,調試器將不會在斷點處停止(因為您沒有返回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.