So che posso avviare un processo in codice con Process.Start()
. È anche possibile collegare il debugger a quel processo?Come si allega un processo al debugger in Visual Studio?
Non dal codice di per sé, ma solo un modo per farlo?
So che posso avviare un processo in codice con Process.Start()
. È anche possibile collegare il debugger a quel processo?Come si allega un processo al debugger in Visual Studio?
Non dal codice di per sé, ma solo un modo per farlo?
È 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:
In studio visivo fare clic su Strumenti | Allegare al processo. Quindi selezionare il servizio appropriato.
È 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.
In Visual Studio 2015, fare clic su "Debug> Allega per elaborare" nel menu. In alternativa, c'è un tasto di scelta rapida Ctrl + Alt + P.
È 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());
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