Dot-Net
如何排查和調試 Visual Studio 設計模式錯誤?
使用 Windows 7 和 Visual Studio 2010,我正在編寫一個 C# 自定義使用者控制項。我在程式碼視圖中編碼了數週,最近當我嘗試切換到設計模式時,Visual Studio 掛起,“沒有響應”。我可以等一個小時,仍然沒有任何反應。點擊關閉按鈕會顯示“您要等待、關閉、重新啟動並向 Microsoft 發送資訊”對話框。
有沒有辦法(堆棧)跟踪設計者試圖執行的程式碼?也許是設計時跟踪消息或斷點?
對於 Visual Studio 2010/2013
您可以調試 Visual Studio 設計器本身!打開 Visual Studio 的第二個實例,使用
Tools -> Attach To Process並附加到第一個 Visual Studio(即devenv.exe)。在 Visual Studio 實例 #2 (您在其中執行附加到程序的實例)中:在使用者控制項的建構子上放置一個斷點
在 Visual Studio 實例#1 中(原來的實例會卡住):打開你的使用者控制項所在的設計器,VS#2 中的斷點將被命中。
對於 Visual Studio 2012
您要調試的過程是
XDesProc.exe- 請參閱ABT 博士的回答。否則,該過程與 Visual Studio 2010/2013 相同。
對於 Visual Studio 2010,這個答案就可以了。
對於 Visual Studio 2012 或更高版本,您需要做的實際上是調試 Visual Studio Designer 程序。您要調試的程序稱為 XDesProc.exe
.
我執行以下操作:
- 打開兩個指向同一個解決方案的 Visual Studio 實例
- 關閉兩者中的所有視窗。
- 殺死任務管理器中的所有 XDesProc.exe 實例
- 在 Visual Studio 實例 A 中,打開任何視圖(不是有異常的視圖)。這將啟動 Visual Studio 實例 A 的 XDesProc 設計器程序
- 在 Visual Studio 實例 B 中,附加到 XDesProc.exe 上的程序並設置斷點,或者設置 Break on exceptions
- 在 Visual Studio 實例 A 中,打開視圖(有異常)
- Visual Studio B 應該會中斷。
如果您錯過了它,或者需要重新啟動這些步驟,請從第 (2) 步“關閉所有視窗”重新開始,殺死 XDesProc 實例。有時設計器啟動一次並記憶體值,您需要有一個乾淨、無異常的設計器來跟踪問題。
.