2014-09-16 2 views
7

디버깅하려는 MMC 스냅인이 있습니다. 현재 스냅인의 생성자에 배치 된 다음 코드는, 거기에 디버거를 연결 측면에서 작동합니다디버거가 프로세스에 연결하지 않음

public MySnapIn() 
{ 
#if DEBUG 
    if (!Debugger.IsAttached) 
    { 
     Debugger.Launch(); 
    } 
#endif 
    ... 
} 

하지만 정말 짜증나는 항상 비주얼 스튜디오에 디버거를 연결해야 할 수 있습니다. 나는이 과정을 자동화하고 싶다. 이상적으로, 필자는 F5를 누르기 만하면 자동으로 디버거를 연결합니다. 나는 다음과 같은 시도 :

  • 프로젝트 속성 -> 외부 프로그램을 시작 ->에 입력 : -> 명령 줄 인수 - "C \ WINDOWS \ SYSTEM32 \ mmc.exe를"
  • 프로젝트 속성> 준 그것 .msc 파일 경로 (스냅인 레이아웃을 저장하여 매번로드하기가 쉽기 때문에 항상 파일 -> 스냅인 추가/제거가 필요하지는 않습니다).

이것은 작동하지 않았습니다. 디버거는 자동으로 연결되지 않습니다. 이 프로세스를 자동화하거나 디버거가 자동으로 연결되는 것을 차단하는 방법은 무엇입니까?

+2

+1 디버거가 연결되도록 요청하는 방법 ('Debugger.Launch()'). 나는 그것이 가능하다는 것을 몰랐다. – stakx

+1

@stakx 그것은 * 대부분의 경우 작동합니다 *. 예를 들어 Windows 서비스 또는 GUI가 있어야하는 다른 유형의 응용 프로그램 (소프트 마이크로에 따라)이 있으면 작동하지 않습니다. http://stackoverflow.com/questions/12042054/debugger -Windows-Service-in-Windows-8 WER에 대한 자세한 내용은 디버깅 도구 (크래시 덤프 생성, 크래시 덤프를 사용하여 Visual Studio로로드하고 디버거를 사용하여 모든 응용 프로그램의 개체 상태를 확인하십시오. – Alexandru

+0

@stakx WER는 레지스트리 키 변경 (http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181(v=vs.85).aspx)과 PDB 파일이 필요합니다. 또한 작업 관리자에서 덤프를 생성 할 수 있습니다 (Ctrl + Shift + Esc -> 응용 프로그램을 마우스 오른쪽 단추로 클릭 -> 덤프 파일 생성) – Alexandru

답변

6

방금 ​​가져 왔습니다. 확인

  • 을 제작 : As it turns out, 당신은 force it to stay in 32-bit mode에 "명령 줄 인수"에 -32 플래그를 추가 한 후 64 비트 시스템에서 32 비트 MMC 런처 (나는 오전하는)를 사용하고 있습니다 내 스냅인 프로젝트가 구성 관리자의 모든 CPU를 대상으로했습니다.
  • 프로젝트 속성 -> 외부 프로그램을 시작 -> "C : \ Windows가 \ SysWOW64와이 mmc.exe를 \"에 입력 -> 명령 줄 인수 -
  • 프로젝트 속성>은 .msc 파일로에게 패스를 주었고, 및 -32 플래그 (스냅인 레이아웃을 저장하므로 매번로드하기가 쉽기 때문에 항상 파일 -> 스냅인 추가/제거가 필요하지는 않습니다).
+3

''C : \ Windows \ SysWOW64 \ mmc.exe ''이름의 제목이 64이지만 그 폴더는 실제로 32 비트 버전 프로그램이 실행되므로 64 비트가 아닌 32 비트 실행기가 실행됩니다.64 비트 버전을 실행중인 경우 'C : \ Windows \ System32'또는 32 비트 버전을 실행하는 경우 'C : \ Windows \ sysnative'에 64 비트 버전이 있습니다 (System32는 SysWOW64로 리디렉션됩니다. 32 bit app) –

+0

@ScottChamberlain 너무 역동적 인 반 직관이지만 감사합니다. 나는 대답을 업데이트 할 것입니다. – Alexandru

+1

이러한 종류의 리디렉션에 대한 자세한 내용을 보려면 [File System Redirector] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs/vs/))의 MSDN 페이지를 참조하십시오. 85) .aspx) –

관련 문제