2010-03-25 81 views
3

我猜想每個進行大量調試的人都會在Visual Studio中有一個方便的宏(在工具欄上帶有快捷方式),當它自動附加到特定過程(由名稱標識)。Visual Studio - 「附加到進程的特定實例」宏

它節省了大量的時間,而不是點擊「調試」 - >「附加到進程...」,但它只適用於運行一個想要附加進程的單個實例的情況。如果這些內存中的特定進程不止一個實例 - 第一個(具有較小的PID?)正由調試器選擇。

有沒有人有一個顯示對話框的宏(如果有更多的1個進程運行指定的名稱),並讓開發人員選擇他/她真正想要附加到的一個。

我猜可以根據windwow標題文本進行選擇(這在大多數情況下是足夠的),當選擇特定實例時,宏將進程的PID傳遞給Debugger對象?

如果有人有這個宏或知道如何寫它 - 請分享。

謝謝。

回答

6

您可以隨時附加到所有實例... 下面是我在調試asp.net應用程序時使用的宏 - 它們通常同時具有UI和Webservice,我需要附加到這兩者。

Sub AttachToAspNET() 
     Try 
      Dim process As EnvDTE.Process 

      Dim listProcess As New List(Of String) 
      listProcess.Add("aspnet_wp.exe") 
      listProcess.Add("w3wp.exe") 
      listProcess.Add("webdev.webserver.exe") 

      For Each process In DTE.Debugger.LocalProcesses 
       For Each procname As String In listProcess 
        If process.Name.ToLower.IndexOf(procname) <> -1 Then 
         process.Attach() 
        End If 
       Next 
      Next 
      ListDebuggedProcesses() 
     Catch ex As System.Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 
+1

這對我很有幫助,但記得在上面加入'Imports System.Collections.Generic'。由於我找不到對'ListDebuggedProcesses()'的任何引用,所以我註釋掉了這一行。 – Plynx 2012-11-01 23:31:32

相關問題