문제

원격 디버깅을 사용하고 싶습니다.디버깅하려는 프로그램은 b 머신에서 실행됩니다.Visual Studio는 컴퓨터 a에서 실행됩니다.

머신 b에는 다음 파일이 포함된 폴더가 있습니다.

  • msvcr72.dll
  • msvsmon.exe
  • NatDbgDE.dll
  • NatDbgDEUI.dll
  • NatDbgEE.dll
  • NatDbgEEUI.dll

일부 파일이 누락되었다고 생각되는 경우 해당 파일이 일반적으로 어디에 있는지 설명해 주실 수 있습니까?

다음 단계에서 나는 msvsmon.exe 그리고 컴퓨터 b의 내 프로그램.컴퓨터 a에서 Visual Studio 2008과 프로그램이 작성된 솔루션을 시작했습니다.그런 다음 "디버그 - 프로세스에 연결"을 선택합니다.저는 "원격 전송(인증 없이 기본만)"을 선택했습니다.올바른 IP를 한정자로 사용하고 올바른 프로세스(program.exe)를 사용했습니다.잠시 후 팝업 창에 다음 메시지가 표시되었습니다.

Program.exe의 0x7c812a7b에서 처리되지 않은 예외:0xE0434F4D:0xe0434f4d

계속할 수도 있고 중단할 수도 있습니다.계속하면 예외가 계속해서 발생합니다.그래서 break를 눌렀더니 다음 메시지가 떴습니다.

호출 스택 프레임에 대해 기호가 로드되지 않습니다.소스코드를 표시할 수 없습니다.

도움이 되었습니까?

해결책

어셈블리와 함께 생성 된 .pdb 파일을 원격 시스템의 동일한 폴더에 복사해야합니다. 이렇게하면 디버거가 디버그 기호를 픽업 할 수 있습니다.

다른 팁

  1. .pdb 파일의 위치를 ​​가리키는 공유 폴더를 개발 컴퓨터에 추가하세요.
  2. 라는 환경 변수를 설정합니다. _NT_SYMBOL_PATH 개발 컴퓨터의 공유 폴더를 가리키는 원격 컴퓨터에서

이제 원격 디버거가 개발 컴퓨터에서 기호를 검색합니다.빌드할 때마다 복사할 필요가 없습니다.

MS 비디오 보기 여기.

8~9분부터 시청하세요.그는 개발 컴퓨터의 드라이브 공유에서 기호를 로드하도록 원격 디버거를 설정하는 방법을 보여줍니다.

행운을 빌어요!

  • Visual Studio 2010의 도구 메뉴에서 옵션을 선택하십시오.
  • 옵션 대화 상자에서 디버깅 노드를 열고 장군을 클릭하십시오.
  • 필요한 경우 모든 설정을 표시하고 찾으십시오 내 코드 만 활성화하십시오(관리자)
  • 그것을 선택 취소하십시오 확인을 클릭하십시오

원격 프로세스를 첨부 할 수 있습니다

.NET의 원격 디버깅은 작동하지 않으면 작동하지 않습니다. .pdb 파일을 동일한 디렉토리에 배치하십시오 디버깅 된 코드가 존재합니다.

VS가 여전히 디버깅 소스를 찾을 수없는 경우 디버깅 된 코드 및 VS 프로젝트 소스는 다음과 같습니다. 같은 버전이 아닙니다. 해결책은 프로젝트를 재건하고 재배치하는 것입니다.

0xE0434F4D는 CLR (즉, 관리 코드)의 예외입니다. 인증을 통해 원격 디버깅을 수행하고 관리 된 코드를 디버그하기로 선택해야합니다. 또는 일부 디버거 확장을 사용하여 관리 된 예외 정보를 추출 할 수 있지만 조금 더 어려운 일입니다.

참조 :

깨지면 ...

1800 정보가 맞습니다. 관리 코드를 디버그하려면 Windows 인증으로 원격 디버깅을 수행해야합니다. 그렇지 않으면 관리 조립품의 기호를로드 할 수 없습니다. 인증과 함께 작동하도록하는 것은 매우 까다 롭습니다. 왜냐하면 무엇보다도 동일한 암호를 가진 두 기계의 로컬 계정이 필요합니다. 이 질문과 모든 사람의 답변은 그 일을하는 데 매우 유용합니다.

Visual Studio (VS2008)의 원격 디버깅, Windows Forms Application

나는 같은 문제가 있었다. 에 대한 답을 찾았습니다 MSDN 포럼 여기에서 정답을 복사/붙여 넣기 만하면됩니다.

MSVSMON.EXE의 올바른 버전을 사용하고 있는지 확인하십시오 !!! 그게 다야! C# 응용 프로그램을 원격 디버깅하는 동안 같은 문제가있었습니다. 서버가 Windows Server 2008 64 비트를 실행하기 때문에 x64 msvsmon.exe를 사용하고 있었지만 응용 프로그램은 x86 용으로 작성 되었으므로이 성가신 오류를 제거하기 위해 x86 버전의 MSVSMON.EXE를 실행해야했습니다. 다른 것이 필요하지 않았습니다. 응용 프로그램의 대상 아키텍처에 해당하는 msvsmon.exe 버전을 실행합니다 ^_ ^

위의 답변이 정확하지만 어셈블리가 디버깅 된 PDB가 원격 위치에 위치하여 수령되지 않은 경우에 달려있었습니다. 디버그 기호 게시를 지원하는 TFS 또는 다른 빌드 메커니즘을 사용하는 경우 수행하는 것이 좋습니다. 그런 다음 Visual Studio 옵션> 디버깅> 기호에서는 해당 위치를 기호 서버 옵션에 추가하여 해당 기호가 일치하는 것을 발견 할 때마다로드 할 수 있습니다.

이를 통해 동적으로 불리는 어셈블리 (Assembly) (어셈블리와 함께 상징을 출판 할 때 제 삶을 위해 일할 수없는 것)라도 내가 쓴 모든 일에 근접한 것을 디버그 할 수있었습니다. 이 매우 편리한 기능을 사용하십시오!

프로젝트 속성, 탭을 컴파일하고 빌드 출력 경로를 원격 기계로 설정 하여이 작업을 수행 할 수있었습니다. EG MyServer MyShare MyAppdir

디버그 탭에서 원격 기계를 사용하여 MyServer로 설정했습니다.

나는 또한 관습을 사용할 때 이것을 달렸다 구성을 빌드하십시오. (디버그 대신 Dev)

이를 수정하기 위해 프로젝트 속성 (> 빌드-> 출력-> 고급 설정을 수정하고 출력을 확인하고 디버그 정보 설정이 가득한 또는 PDB 전용. 기본값 풀어 주다 구성은 일반적으로 설정됩니다 없음.

이동 도구-> 옵션-> 디버깅-> 기호 실행 파일의 .pdb 파일에 경로를 추가하십시오. 내 지역 기계의 길은 잘 작동했습니다.

문서에 따르면, 관리 (비주얼 스튜디오 2012가있는 원격 시스템에서 .NET 4.5에 구축)에 부착하려고 시도). 리모컨에서 기계.

따라서 원격 시스템에서 기호 (원격 시스템의 응용 프로그램의 모듈/어셈블리와 일치하는지 확인)를 유지하고 공유하고 로컬 시스템 (VS가 실행 중)의 기호 설정을 통해 참조했습니다.

참고 : 서비스 및 기호는 2K12 + .NET 4.5 Windows 서비스에서 나와 동일한 디렉토리에있을 필요가 없습니다.

자세한 내용 :

http://msdn.microsoft.com/en-us/library/bt727f1t(v=vs.100).aspx

링크에서 발췌 :

기호 (.pdb) 파일 찾기


기호 파일에는 컴파일 된 실행 파일에 대한 디버깅 정보가 포함되어 있습니다. 디버깅 할 응용 프로그램의 기호 파일은 응용 프로그램 실행 파일을 컴파일 할 때 생성 된 파일이어야합니다. 기호 파일은 디버거가 찾을 수있는 곳에 위치해야합니다.

• 기본 응용 프로그램의 기호 파일은 Visual Studio 호스트 컴퓨터에 있어야합니다.

관리되는 응용 프로그램의 기호 파일은 원격 컴퓨터에 있어야합니다.

• 혼합 (관리 및 기본) 애플리케이션 용 기호 파일은 Visual Studio Host 컴퓨터와 원격 컴퓨터 모두에 있어야합니다.

문안 인사!

나는이 문제를 해결했고 위의 솔루션은 나를 위해 그것을 고치지 않았다. 제 경우에는 VS2010 솔루션에 많은 프로젝트가있었습니다. 내가 원격으로 디버그하려고했던 프로젝트는있었습니다 ~ 아니다 Make Scripts가 옳지 않기 때문에 VS2010 솔루션을 시작 프로젝트로 설정했습니다.

내 솔루션 내 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 디버그하려고했고 선택했습니다. Set as StartUp Project 그런 다음 내 기호가 올바르게로드되고 내 중단 점에 닿았습니다.

원격 디버깅하는 동안 같은 문제가 있었는데 2008 vs 2008의 다음 단계로 해결되었습니다.

  1. 당신은 당신의 바이너리와 함께 로컬 PDB 파일을 복사합니다.
  2. 응용 프로그램이 구축 된 것과 동일한 버전의 MSVMON을 실행하십시오. X86 아키텍처 용 응용 프로그램이 구축 된 경우 X64 시스템에서 실행중인 경우에도 X86 버전의 MSVMON을 실행해야합니다. 실행하려고 할 때 경고를 제공하지만 실행해야합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top