2011-11-17 177 views
47

由於某些原因(我從Excel 2010模板項目創建的Excel文件),我有.NET程序無法從Visual Studio運行,因此需要調試啓動事件。如何將Visual Studio附加到尚未啓動的進程?

如果我想調試程序初始化後發生的事件,那就沒有問題了。我從資源管理器中運行該程序,將該進程附加到Visual Studio並在代碼中添加一些斷點。但是在這裏,我需要在啓動事件中加入斷點。我需要的是能夠將進程附加到Visual Studio,而不依賴於PID,但是可以使用特定的進程名稱或任何可以工作的其他解決方案。

當然,在我的啓動事件中添加一個Thread.Sleep(1000)以給我一些時間來在Visual Studio中附加該過程是毫無疑問的!

謝謝。

回答

70

其實你可以!但是你不重視它,你開始它。在您的項目的屬性上,在調試選項卡上,您可以指定一個外部程序。只需輸入程序的路徑,你開始(例如:Excel)中

+3

+1我用過這麼多次 – stijn

+2

感謝您的訣竅!它完美的作品。 – Ucodia

+3

很好的解決方案,但只需注意在這種情況下擊中F5不起作用。相反,右鍵單擊有關項目,然後從上下文菜單中單擊「調試>啓動新實例」。 –

3

如果沒有進程,那麼Visual Studio不能將附加到

但是,您可以將項目的啓動程序設置爲項目輸出以外的內容。

+0

我已經調查過,如果我想要做的是正確的,實際上是這樣。我的情況不是通常的Visual Studio調試案例。我有一個在Visual Studio中開發的Excel 2010模板項目,模板工作表有啓動事件。我從Visual Studio運行該模板,在我的Excel工作表中添加一些數據並將文件保存在磁盤上。然後,我可以打開這個也依賴於模板程序集的文件的唯一方法是從資源管理器中打開它,因此我無法在這種情況下調試啓動事件,當然,我也有一些像數據綁定一樣的啓動數據處理。 – Ucodia

13

我是在外部產生的進程,墜毀在啓動時拋出一個異常調試C++插件,這個工作非常適合我:

添加免費Reattach Extension for Visual Studio。要求它在啓動之前重新附加進程名稱。它會彈出一個模態對話框,表示它正在等待進程名稱啓動。

現在啓動該進程,Visual Studio調試器將立即連接,捕獲異常並觸發斷點。

+0

很棒的擴展,謝謝! – Ucodia

+0

千次是的! – itslittlejohn

4

我在尋找類似的東西時發現了這個答案。在我的情況下,我不能簡單地使用可執行文件作爲我的項目的啓動程序,因爲它需要在非常特定的環境中啓動,我無法輕鬆再現(命名:從cygwin開始)。

我看了一下重新附加擴展爲suggested by mrstrange,也是非常相似的Attach To Anything延伸......但我的可執行文件似乎過於迅速關閉了擴展,通知和重視。

什麼終於幫助我是這樣的:https://stackoverflow.com/a/4042545/1560865,它引用MSDN文章How to: Launch the Debugger Automatically,後者又列出以下步驟:

  1. 啓動註冊表編輯器(regedit)。
  2. 在註冊表編輯器中,打開HKEY_LOCAL_MACHINE文件夾。
  3. 導航到HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ currentversion \ image文件執行選項。
  4. 圖像文件執行選項文件夾中,找到要調試的應用程序的名稱,如myapp.exe。如果找不到要調試的應用程序:
    a。用鼠標右鍵單擊圖像文件執行選項文件夾,然後在快捷菜單上單擊新密鑰。 b。用鼠標右鍵單擊新的密鑰,然後在快捷菜單上,單擊重命名。 c。將密鑰名稱編輯爲應用程序的名稱; myapp.exe,在這個例子中。
  5. 右鍵單擊MyApp.exe的文件夾,在彈出的快捷菜單上,單擊新的字符串值
  6. 用鼠標右鍵單擊新的字符串值,然後在快捷菜單上單擊重命名。
  7. 將名稱更改爲調試器。
  8. 用鼠標右鍵單擊新的字符串值,然後在快捷菜單上單擊修改。出現編輯字符串對話框。
  9. 數值數據框中,輸入vsjitdebugger.exe
  10. Click OK
  11. 註冊表菜單中,單擊退出
  12. 包含vsjitdebugger.exe的目錄必須位於系統路徑中。要將其添加到系統路徑,請按照下列步驟操作:
    a。在經典視圖中打開控制面板,然後雙擊系統。 b。點擊高級系統設置
    c。在系統屬性中,單擊高級選項卡。 d。在高級選項卡上,單擊環境變量。 e。在環境變量對話框中,在下的系統變量,選擇路徑,然後點擊編輯按鈕。 f。在編輯系統變量對話框中,將目錄添加到變量值框中。使用分號將其與列表中的其他條目分開。 g。點擊確定關閉編輯系統變量對話框。 h。
    h。點擊確定關閉環境變量對話框。 i。點擊確定關閉系統屬性對話框。
  13. 現在,使用任何方法啓動您的應用程序。Visual Studio將啓動並加載應用程序

希望這可以幫助其他人在未來!

2

按照這些步驟,如果你的Visual Studio 2017年:

  1. 文件>打開>項目/解決方案
  2. 選擇您的.exe
  3. 調試>開始調試

遠遠高於容易其他建議:您不必混淆項目屬性,也不需要擴展。

+0

但是你必須告訴Visual Studio調試符號在哪裏,如果它沒有自動找到它們 –

+0

快速簡單能夠在5秒內完成,我喜歡它。謝謝 – ComradeJoecool

相關問題