2009-06-12 2 views

risposta

22

È possibile attach to a running process utilizzando Tools | Attach to Process. Se si tratta di un'applicazione Web, è possibile allegarla allegando a aspnet_wp.exe o w3wp.exe.

Per rispondere alla domanda su come connettersi a un processo di programmazione:

Qui ci sono altre domande Stack Overflow che si occupano di che:

3

In studio visivo fare clic su Strumenti | Allegare al processo. Quindi selezionare il servizio appropriato.

2

È possibile eseguire questa operazione in quasi tutti i programmi di debug.

Visual Studio ne ha uno che si adatta alle tue esigenze.

Se è necessario un controllo leggermente più avanzato, provare a OllyDbg, che è un disassemblatore, in modo da poter effettivamente manipolare il programma a livello di assieme. Questo ti darà il controllo completo, ma potrebbe anche essere un sovraccarico di informazioni.

+0

WinDbg deve essere utilizzato. WinDbg con SOS supera veramente OllyDbg per .NET. OllyDbg ha più funzioni di "analisi" ma WinDbg è più appropriato qui - dove l'OP probabilmente vuole solo eseguire il debug del proprio processo – kizzx2

1

In Visual Studio 2015, fare clic su "Debug> Allega per elaborare" nel menu. In alternativa, c'è un tasto di scelta rapida Ctrl + Alt + P.

0

È possibile farlo nel codice.

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());