문제

PDB 파일을 사용하면 충돌이 발생한 위치를 진단하는 데 도움이 된다고 들었습니다.
나의 기초적인 이해하는 바는 Visual Studio에 소스 파일, pdb 파일 및 충돌 정보(Dr Watson에서?)를 제공한다는 것입니다.
누군가 그것이 어떻게 작동하는지/관련된 내용을 설명해 주시겠습니까?(감사합니다!)

도움이 되었습니까?

해결책

PDB 파일은 프로젝트를 빌드할 때 생성됩니다.여기에는 Visual Studio가 해석할 수 있는 빌드된 바이너리와 관련된 정보가 포함되어 있습니다.

프로그램이 충돌하고 충돌 보고서를 생성하면 Visual Studio는 해당 보고서를 가져와 애플리케이션의 PDB 파일을 통해 소스 코드에 다시 연결할 수 있습니다.PDB 파일은 충돌 보고서를 생성한 동일한 바이너리에서 빌드되어야 합니다!

시간이 지남에 따라 몇 가지 문제가 발생했습니다.

  • 충돌 보고서를 디버깅하는 컴퓨터는 바이너리를 빌드한 컴퓨터와 동일한 경로에 소스가 있어야 합니다.
  • 릴리스 빌드는 종종 개체 멤버 변수의 상태를 볼 수 없을 정도로 최적화됩니다.

전자를 물리치는 방법을 아시는 분 계시면 조언을 주시면 감사하겠습니다.

다른 팁

PDB 파일은 어셈블리의 MSIL을 원본 소스 라인에 매핑합니다.즉, 어셈블리와 동일한 디렉터리에 어셈블리로 컴파일된 PDB를 넣으면 예외 스택 추적에 원본 소스 파일 위치의 이름과 줄이 포함됩니다.PDB 파일이 없으면 스택 추적의 각 수준에 대한 클래스 및 메서드 이름만 표시됩니다.

기호 서버를 설정하고 PDB 파일을 소스 코드 제어 시스템에 인덱싱하는 방법을 살펴봐야 합니다.최근에 우리 제품에 대해 이 프로세스를 수행했는데 매우 잘 작동했습니다.바이너리와 함께 PDB 파일을 사용할 수 있게 만드는 방법이나 덤프 파일을 디버깅할 때 적절한 소스 코드를 얻는 방법에 대해 걱정할 필요가 없습니다.

존 로빈스의 책: http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1

미니 덤프를 생성하기 위한 몇 가지 샘플 코드는 여기에서 확인하십시오(충돌 후 분석으로 제한될 필요는 없습니다. 충돌 없이 코드의 어느 지점에서나 생성할 수 있습니다). http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top