How do I attach a process to the debugger in Visual Studio?

31,642

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:

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());
Share:
31,642
Bertvan
Author by

Bertvan

Working on ASP.NET (MVC) projects Working on CAD/GIS Software: Interactive and Database driven AutoCAD Plugins.

Updated on July 09, 2022

Comments

  • Bertvan
    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
    kizzx2 about 13 years
    WinDbg 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
    BornToCode over 2 years
    On later versions of Visual Studio it's under Debug | Attach to process (instead of under Tools menu).