Visual studio VisualStudio-“的;“附加到流程的特定实例”;宏

Visual studio VisualStudio-“的;“附加到流程的特定实例”;宏,visual-studio,debugging,visual-studio-2005,macros,Visual Studio,Debugging,Visual Studio 2005,Macros,我猜每个进行大量调试的人在VisualStudio中都有一个方便的宏(在工具栏上有它的快捷方式),当调用该宏时,它会自动附加到特定进程(通过名称标识) 它比单击“调试”->“附加到流程…”节省了大量时间,但它仅在运行要附加到的流程的单个实例时有效。如果内存中有多个特定进程实例,调试器将选择第一个实例(PID较小?) 是否有人有一个宏来显示一个对话框(如果有多个进程运行指定的名称),并允许开发人员选择他/她真正想要连接的一个 我猜可以根据windwow标题文本进行选择(在大多数情况下这就足够了),

我猜每个进行大量调试的人在VisualStudio中都有一个方便的宏(在工具栏上有它的快捷方式),当调用该宏时,它会自动附加到特定进程(通过名称标识)

它比单击“调试”->“附加到流程…”节省了大量时间,但它仅在运行要附加到的流程的单个实例时有效。如果内存中有多个特定进程实例,调试器将选择第一个实例(PID较小?)

是否有人有一个宏来显示一个对话框(如果有多个进程运行指定的名称),并允许开发人员选择他/她真正想要连接的一个

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

如果有人有那个宏或者知道如何写它-请分享


谢谢。

您可以始终附加到所有实例。。。 下面是我在调试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
子附件OASPNET()
尝试
作为环境过程的Dim过程
Dim listProcess作为新列表(字符串)
添加(“aspnet_wp.exe”)
添加(“w3wp.exe”)
添加(“webdev.webserver.exe”)
对于DTE.Debugger.localprocesss中的每个进程
对于listProcess中的每个procname作为字符串
如果process.Name.ToLower.IndexOf(procname)-1,则
process.Attach()
如果结束
下一个
下一个
ListDebuggedProcesses()
捕获ex作为系统异常
MsgBox(例如消息)
结束尝试
端接头

这对我有很大帮助,但请记住在顶部包括
Imports System.Collections.Generic
。因为我找不到对
listdebuggedprocess()
的任何引用,所以我注释掉了那一行。