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

前端 未结 5 1191
既然无缘
既然无缘 2020-12-08 11:36

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 ,

相关标签:
5条回答
  • 2020-12-08 11:52

    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.

    0 讨论(0)
  • 2020-12-08 12:05

    In Visual Studio 2015, click 'Debug > Attach to process' in the menu. Alternatively, there is a shortcut key Ctrl+Alt+P.

    0 讨论(0)
  • 2020-12-08 12:06

    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());
    
    0 讨论(0)
  • 2020-12-08 12:09

    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:

    • Attaching to a Process Using VS.NET Automation Model

    Here are other Stack Overflow questions that deal with that:

    • Communicating with the Visual Studio Debugger Programmatically?
    • Programmatically apply breakpoints in Visual Studio
    0 讨论(0)
  • 2020-12-08 12:12

    In visual studio click Tools | Attach to process. Then select appropriate service.

    0 讨论(0)
提交回复
热议问题