2009-06-12 4 views

Antwort

22

Sie können attach to a running process mit Tools | Attach to Process. Wenn es sich um eine Webanwendung handelt, können Sie sie anhängen, indem Sie sie an aspnet_wp.exe oder w3wp.exe anhängen.

Um Ihre Frage zu beantworten, wie programmatisch auf einen Prozess anhängen:

Hier sind andere Stack-Überlauf Fragen, die damit umgehen:

3

Im Visual Studio klicken Sie auf Tools | An Prozess anhängen. Wählen Sie dann den entsprechenden Dienst aus.

2

Sie können dies in so ziemlich jedem Debugger, der seins wert ist.

Visual Studio hat eines, das Ihren Anforderungen entsprechen sollte.

Wenn Sie ein wenig mehr Kontrolle benötigen, versuchen Sie OllyDbg, die ein Disassembler ist, so dass Sie tatsächlich Ihr Programm auf der Assembly-Ebene manipulieren können. Dies gibt Ihnen die vollständige Kontrolle, aber es könnte auch eine Informationsüberlastung sein.

+0

WinDbg verwendet werden soll. WinDbg mit SOS übertrumpft OllyDbg für .NET. OllyDbg hat mehr "Analyse" -Features, aber WinDbg ist hier besser geeignet - wo der OP wahrscheinlich nur seinen eigenen Prozess debuggen will – kizzx2

1

Klicken Sie in Visual Studio 2015 im Menü auf "Debug> An Prozess anhängen". Alternativ gibt es eine Tastenkombination Strg + Alt + P.

0

Sie können dies in Ihrem Code tun.

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; 
     } 

Verbrauch:

Attach(GetCurrent()); 
Verwandte Themen