2014-02-07 84 views
1

有沒有辦法在不知道把斷點放在哪裏的情況下在一行代碼處中斷?在未知的代碼行中斷行

我經常不知道某個類的名稱,但我知道UI中的哪個控件會導致該問題。 因此,無論我需要從UI


停止在何時觸發某個事件(例如,MenuItem被單擊並顯示一個對話框 - 我想停在事件處理程序或對話框的構造函數)。

我知道HTML頁面可以懸停在零件上並查看它們的名稱。 VS2012是否提供類似的東西?

回答

1

你可能會需要這樣的東西:

UISpy,你可以用它來調查你的窗口和事件,他們開火控制。

+0

他也可以使用[snoop](http://snoopwpf.codeplex.com/) – WiiMaxx

+0

雖然該程序顯示了很多有關應用程序整體佈局的信息,但並未顯示有關某些控件類型的任何信息。它似乎只知道.Net控件,但是當例如一個DataGridView派生它仍然顯示DataGridView作爲控件的類型 –

+0

@WiiMaxx:我編輯了我的問題。其實我在這種情況下使用WinForms。所以snoop對我來說不是選擇。對不起,我的不準確 –

0

是的,您可以打開Visual Studio IDE並中斷代碼的執行。它會打破當前正在執行的代碼,並讓你從那裏調試。

不知道它是否會讓你觸及任何未知的代碼行。

值得一試!

+0

我認爲在UI應用程序中VS只會在Application.Run()行顯示,至少在我的大部分情況下都會發生 – garf1eld

+0

你是對的!但它也取決於調試的類型。也可能附加到其他進程並以二進制模式進行調試,我不知道該怎麼做,但我相信這是可以通過使用Visual Studio來實現的,因此,也可以在二進制文件內進行調試。 –

+0

是的,我只是閱讀有一種方法可以在暫停時加入(F11)並等待下一個事件,並引發事件被觸發。但這似乎不適用於鼠標事件,因爲應用只是在點擊按鈕時才運行 –

0

您可以通過Runtime Flow或Visual Studio Ultimate IntelliTrace單擊一個按鈕,然後在其上放置斷點後瞭解執行的代碼。