Visual Studio - “附加到进程的特定实例”宏

时间:2010-03-25 03:38:40

标签: visual-studio debugging visual-studio-2005 macros

我想很多人在很多调试中都有一个方便的宏在Visual Studio中(在工具栏上有快捷方式),当被调用时会自动附加到特定进程(由名称标识)。

它节省了大量时间,而不是点击“调试” - > “附加到进程...”,但它只有在运行要附加到的进程的单个实例时才有效。如果theres是内存中特定进程的多个实例 - 第一个(具有较小的PID?)正由调试器选择。

是否有人有一个显示对话框的宏(如果有超过1个指定名称正在运行的进程)并允许开发人员选择他/她真正想要附加的对象。

我想可以根据windwow标题文本(在大多数情况下就足够了)进行选择,当选择特定实例时,宏将进程的PID传递给Debugger对象?

如果有人拥有该宏或知道如何编写它 - 请分享。

感谢。

1 个答案:

答案 0 :(得分:6)

您可以随时附加到所有实例... 这是我在调试asp.net应用程序时使用的宏 - 这些宏通常同时具有UI和Web服务,我需要附加到这两个。

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