How do I attach a process to the debugger in Visual Studio?
Solution 1
You can attach to a running process using Tools | Attach to Process
. If it's a Web Application, you can attach to it by attaching to aspnet_wp.exe
or w3wp.exe
.
To answer your question on how to attach to a process programmatically:
Here are other Stack Overflow questions that deal with that:
- Communicating with the Visual Studio Debugger Programmatically?
- Programmatically apply breakpoints in Visual Studio
Solution 2
In visual studio click Tools | Attach to process. Then select appropriate service.
Solution 3
In Visual Studio 2015, click 'Debug > Attach to process' in the menu. Alternatively, there is a shortcut key Ctrl+Alt+P.
Solution 4
You can do this in pretty much any debugger worth its salt.
Visual Studio has one that should fit your needs.
If you need a little more advanced control, try OllyDbg, which is a disassembler, so you can actually manipulate your program at the assembly level. This will give you complete control, but it might be information overload as well.
Solution 5
You can do this in your code.
public static void Attach(DTE2 dte)
{
var processes = dte.Debugger.LocalProcesses;
foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("YourProcess.exe") != -1))
proc.Attach();
}
internal static DTE2 GetCurrent()
{
var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // For VisualStudio 2013
return dte2;
}
Usage:
Attach(GetCurrent());
Bertvan
Working on ASP.NET (MVC) projects Working on CAD/GIS Software: Interactive and Database driven AutoCAD Plugins.
Updated on July 09, 2022Comments
-
Bertvan almost 2 years
I know I can start a process in code with
Process.Start()
. Is it also possible to attach the debugger to that process?Not from code per se , but just a way to do it?
-
kizzx2 about 13 yearsWinDbg should be used. WinDbg with SOS really trumps OllyDbg for .NET. OllyDbg has more "analysis" features but WinDbg is more appropriate here -- where the OP probably only wants to debug his own process
-
BornToCode over 2 yearsOn later versions of Visual Studio it's under Debug | Attach to process (instead of under Tools menu).