PDB 파일을 사용하면 충돌이 발생한 위치를 진단하는 데 도움이 될 수 있다고 들었습니다.
내 basic 이해는 Visual Studio에 소스 파일, pdb 파일 및 충돌 정보를 제공한다는 것입니다 (Dr Watson의)?
다른 사람이 어떻게 작동하는지/관련 내용을 설명해 주시겠습니까? (감사합니다!)
PDB 파일은 프로젝트를 빌드 할 때 생성됩니다. 여기에는 Visual Studio가 해석 할 수있는 빌드 된 바이너리와 관련된 정보가 포함되어 있습니다.
프로그램이 중단되고 충돌 보고서가 생성되면 Visual Studio는 해당 보고서를 가져 와서 응용 프로그램의 PDB 파일을 통해 소스 코드에 다시 연결할 수 있습니다. 충돌 보고서를 생성 한 동일한 바이너리로 PDB 파일을 빌드해야합니다!
시간이 지남에 따라 몇 가지 문제가 발생했습니다.
누군가가 전자를 물리 치는 방법을 알고 있다면 어떤 의견에 감사드립니다.
PDB 파일은 어셈블리의 MSIL을 원본 소스 라인에 매핑합니다. 이는 어셈블리와 함께 컴파일 된 PDB를 어셈블리와 동일한 디렉토리에두면 예외 스택 추적에 원래 소스 파일의 위치 이름과 행이 있음을 의미합니다. PDB 파일이 없으면 스택 추적의 각 레벨에 대한 클래스 이름과 메소드 만 표시됩니다.
심볼 서버를 설정하고 PDB 파일을 소스 코드 제어 시스템에 색인화하는 방법을 고려해야합니다. 나는 최근에 우리 제품에 대해이 과정을 거쳤으며 매우 잘 작동합니다. 바이너리로 PDB 파일을 사용할 수있게하거나 덤프 파일을 디버깅 할 때 적절한 소스 코드를 얻는 방법에 대해 걱정할 필요가 없습니다.
미니 덤프 생성을위한 샘플 코드는 다음과 같습니다 (충돌 후 분석으로 제한 할 필요는 없음)-충돌없이 코드의 어느 시점에서나 생성 할 수 있습니다. http : //www.codeproject .com/KB/debug/postmortemdebug_standalone1.aspx