2015-11-01

MicrosoftがPDBフォーマットの構造体定義のソースコードを公開

Microsoft/microsoft-pdb

MicrosoftがPDBファイルを扱うのに使っているMSVCのソースコードの一部をMITライセンスで公開している。ソースコード、cvinfo.hの中身の大半は、構造体定義のようだ。

このレポジトリは、MicrosoftにおけるPDB(プログラムデータベース) シンボルファイルフォーマットの情報を載せている。

PDBフォーマットはこれまで公式のドキュメント化されておらず、他のコンパイラーやツールセット(例えばClang/LLVM)がWindows上で動作したり、Visual Studioデバッガーとのやり取りを困難にしていた。MicrosoftはオープンソースコンパイラーがWindowsプラットフォームで動作するのを支援する。

このレポジトリの中身の大半は、VC++コンパイラーツールセットにおける実際のソースコードである。ソースコードは究極のドキュメントである(^_^;)。役に立てば幸いだ。もし、他の情報が必要であれば、Issuesを投げて知らせてもらいたい。

シンボルファイルフォーマットが今まで公式に非公開だったことに驚いている。

2 comments:

  1. これでようやくClang for Windows on Visual Studioにて正常なデバグが可能になるというわけだ。

    ReplyDelete
  2. この記事が書かれて約2年、LLVM ProjectはついにPDBをサポートした。

    本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
    https://cpplover.blogspot.jp/2017/08/llvmwindowspdb.html

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.