it-swarm-ko.tech

PDB 파일을 사용하는 방법

PDB 파일을 사용하면 충돌이 발생한 위치를 진단하는 데 도움이 될 수 있다고 들었습니다.
basic 이해는 Visual Studio에 소스 파일, pdb 파일 및 충돌 정보를 제공한다는 것입니다 (Dr Watson의)?
다른 사람이 어떻게 작동하는지/관련 내용을 설명해 주시겠습니까? (감사합니다!)

45
hamishmcn

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

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

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

  • 충돌 보고서를 디버깅하는 머신은 바이너리를 빌드 한 머신과 동일한 경로에 소스가 있어야합니다.
  • 릴리스 빌드는 종종 오브젝트 멤버 변수의 상태를 볼 수없는 정도로 최적화됩니다

누군가가 전자를 물리 치는 방법을 알고 있다면 어떤 의견에 감사드립니다.

34
roo

PDB 파일은 어셈블리의 MSIL을 원본 소스 라인에 매핑합니다. 이는 어셈블리와 함께 컴파일 된 PDB를 어셈블리와 동일한 디렉토리에두면 예외 스택 추적에 원래 소스 파일의 위치 이름과 행이 있음을 의미합니다. PDB 파일이 없으면 스택 추적의 각 레벨에 대한 클래스 이름과 메소드 만 표시됩니다.

38
Omer van Kloeten

심볼 서버를 설정하고 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

12
lesscode