BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Portable PDBの紹介

Portable PDBの紹介

ブックマーク

原文(投稿日:2017/02/06)へのリンク

コンパイル済みアプリケーションをデバッグするためには、バイナリ内のILあるいは機械語をソースコードの元の行に照合する必要がある。そのためのデータはアプリケーション自体に埋め込めるのだが、そうするとEXEやDLLのファイルサイズは大幅に増加する。代わりに通常は、別の「シンボル」ファイルが使われる。Windowsプラットフォームではこれを、PDBあるいは「プログラムデータベース」と呼んでいる。

PDBフォーマットはもともとC/C++用に設計されたが、.NETにも対応するように何年にもわたり拡張されてきた。残念なことに、このフォーマットはプロプライエタリなものとみなされ、きちんと文書化されておらず、実際にはWindows専用ライブラリを使わないと読めなかった。

.NET Coreとともに、Microsoftは新しいクロスプラットフォームのPDBライブラリが必要になった。彼らは既存のライブラリを単に移植するのではなく、代わりに、Windows PDBフォーマットを書き直すことにした。新しいPortable PDBフォーマットは、ネイティブコードに必要な機能をドロップして、.NET機能だけを残している。おかげでフォーマットはシンプルになり、PDBファイルのサイズは大幅に削減される。

Portable PDBフォーマットは、それを読むためのオープンソースライブラリとともに、ドキュメントが公開されている。ただし、これには欠点もある。Portable PDBフォーマットは、エディットコンティニュ、FXCopスタイルのコード解析(Roslynコード解析が動作)、プロファイリングツール、AOPやコードコントラクトなどのコンパイル後のビルドステップ、.NETデコンパイラをサポートしていない。こうした制約はいずれも恒久的なものではないが、新しいフォーマットをサポートするようツールが更新されるには時間がかかるだろう。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT