Process.Start()
코드로 프로세스를 시작할 수 있다는 것을 알고 있습니다. 해당 프로세스에 디버거를 연결할 수도 있습니까?Visual Studio에서 프로세스를 디버거에 연결하려면 어떻게합니까?
코드 그 자체가이 아니지만이를 수행하는 방법은 무엇입니까?
Process.Start()
코드로 프로세스를 시작할 수 있다는 것을 알고 있습니다. 해당 프로세스에 디버거를 연결할 수도 있습니까?Visual Studio에서 프로세스를 디버거에 연결하려면 어떻게합니까?
코드 그 자체가이 아니지만이를 수행하는 방법은 무엇입니까?
attach to a running processTools | Attach to Process
을 사용하면됩니다. 웹 응용 프로그램 인 경우 aspnet_wp.exe
또는 w3wp.exe
에 첨부하여 첨부 할 수 있습니다.
가 다루는 다른 스택 오버플로 질문 있습니다
프로그래밍 방식으로 프로세스에 연결하는 방법에 대한 귀하의 질문에 대답하려면
Visual Studio에서 도구 | 프로세스에 첨부하십시오. 그런 다음 적절한 서비스를 선택하십시오.
소금의 가치가있는 거의 모든 디버거에서이 작업을 수행 할 수 있습니다.
Visual Studio에는 사용자의 요구에 맞는 것이 있습니다.
좀 더 고급 제어가 필요하면 어셈블리 레벨에서 실제로 프로그램을 조작 할 수 있도록 역 어셈블러 인 OllyDbg을 시도하십시오. 이렇게하면 완벽하게 제어 할 수 있지만 정보 과부하 일 수 있습니다.
Visual Studio 2015에서 메뉴의 '디버그> 처리 할 첨부'를 클릭하십시오. 또는 바로 가기 키 Ctrl + Alt + P가 있습니다.
코드에서이를 수행 할 수 있습니다.
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;
}
사용법 :
Attach(GetCurrent());
가 WinDbg를 사용한다. SOS가있는 WinDbg는 .NET 용 OllyDbg보다 우수합니다. OllyDbg에는 더 많은 "분석"기능이 있지만 여기서 WinDbg가 더 적합합니다 - OP는 자신의 프로세스를 디버그하고 싶을뿐입니다 – kizzx2