Visual C++ PDB 파일 내부는?
우리가 C언어 또는 C++ 코드를 Visual Studio를 통해 디버깅할 때 프로그램 데이터베이스라고(Program DataBase) 불리는 확장자 ".PDB" 파일을 사용합니다. PDB 파일은 프로젝트를 빌드할 때 링커에 의해 만들어지고, 코드 라인 수와 기호 정보가 포함되어 있다는 정도는 알고 있습니다.
그런데 정확히 PDB 내부에 무엇이 있는지?? 잘 모르죠.
대부분 C/C++ 개발자는 이 내용을 몰라도 됩니다. 하지만 이러한 세부 사항을 알고 관련된 도구나 컴파일러, 링커, 분석도구를 작업하는 이에게는 엄청나게 유용한 정보일 것 같습니다.
최근 Microsoft의 Visual C++ 팀에서 이러한 관심과 요구사항을 충족하기 위해 PDB의 실제 생성 코드를 GitHub에 Repository를 만들어 공개했습니다!
Prior APIs and Documentation
Source Code
https://github.com/Microsoft/microsoft-pdb
공개한 Visual C++ 팀에서도 PDB 포멧의 내용이 복잡하기 때문에, 이 내용을 보는 이가 내용을 잘 이해할지 모르겠다고 하는군요. 문의 사항이 있으시면 원본 글의 위치인 Visual C++ 팀 블로그에 댓글을 남겨달라고 합니다.
원본글의 위치: https://blogs.msdn.microsoft.com/vcblog/2016/02/08/whats-inside-a-pdb-file/
참고주소: Program Database Files (C++)[영문] https://msdn.microsoft.com/en-us/library/yd4f8bd1(v=vs.100).aspx
참고자료: Visual Studio 2008 심볼 파일(pdb)로 디버깅을 보다 용이하게 하자! http://codeheart.tistory.com/?page=24