Question:
How to use a macro in Visual Studio 2005/2008 to attach a debugger to a process?Answer:
We often have to debug processes by attaching to them.For example, when you do unit testing and you want to see why something went wrong you have to attach your debugger to the test tool's process.
And when you do this a hundred times a day you'll really get bored.
So here is a little macro script that attaches to NUnit or asp_wp or VS WebDev.WebServer (cassini)
If you are on Win 2003 the asp worker process is called w3wp.exe
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Security.Principal
Public Module DebuggingJPE
Function AttachToProcess(ByVal processName As String)
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("Managed")
'Dim compName As String = WindowsIdentity.GetCurrent().Name
'compName = compName.Substring(0, compName.IndexOf("\"))
Dim computerName As String = Environment.MachineName
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, computerName).Item(processName)
proc2.Attach2(dbgeng)
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Function
Sub AttachToAspNET()
AttachToProcess("aspnet_wp.exe")
End Sub
Sub AttachToNUnit()
AttachToProcess("nunit.exe")
End Sub
Sub AttachToWebDev()
AttachToProcess("WebDev.WebServer.EXE")
End Sub
End Module
No comments:
Post a Comment