MicrosoftがPDBファイルを扱うのに使っているMSVCのソースコードの一部をMITライセンスで公開している。ソースコード、cvinfo.hの中身の大半は、構造体定義のようだ。
このレポジトリは、MicrosoftにおけるPDB(プログラムデータベース) シンボルファイルフォーマットの情報を載せている。
PDBフォーマットはこれまで公式のドキュメント化されておらず、他のコンパイラーやツールセット(例えばClang/LLVM)がWindows上で動作したり、Visual Studioデバッガーとのやり取りを困難にしていた。MicrosoftはオープンソースコンパイラーがWindowsプラットフォームで動作するのを支援する。
このレポジトリの中身の大半は、VC++コンパイラーツールセットにおける実際のソースコードである。ソースコードは究極のドキュメントである(^_^;)。役に立てば幸いだ。もし、他の情報が必要であれば、Issuesを投げて知らせてもらいたい。
シンボルファイルフォーマットが今まで公式に非公開だったことに驚いている。
これでようやくClang for Windows on Visual Studioにて正常なデバグが可能になるというわけだ。
ReplyDeleteこの記事が書かれて約2年、LLVM ProjectはついにPDBをサポートした。
ReplyDelete本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
https://cpplover.blogspot.jp/2017/08/llvmwindowspdb.html