3

PDBファイルからGUIDを取得する方法を知っている人はいますか?

Microsoft の Debug Interface Access SDK を使用しています

http://msdn.microsoft.com/en-us/library/f0756hat.aspx

PDBをロードしようとするときに期待するGUIDを渡すときにE_PDB_INVALID_SIGを取得します。

PDB の GUID を知りたいので、何らかの形で破損している可能性のある PDB だけでなく、不一致であることを確認できます。

これを行うことができるツールはありますか?私はdia2dumpとdumpbinを試しましたが、喜びはありません...

どうもありがとう、

考え。

4

3 に答える 3

6

あなたを助けることができるはずのPDBインスペクターと呼ばれるコードプロジェクトツールがあります。または、これをプログラムで行う必要がある場合は、基本的に次のように呼び出します。

IDiaDataSource::LoadDataFromPdb
IDiaDataSource::openSession
IDiaSession::get_global_scope
IDiaSymbol::get_guid
于 2010-03-26T11:14:53.480 に答える
2

dbghelpシンボルAPIを使用します。PDBに関する情報だけが必要な場合は、chkmatchを使用するか、またはdll / exeをWinDbgにロードして、!sym noisy、!lmi、または!chksymを使用することができます。

一致するようにPDBを修正するのは別の話です!chkmatchは一部の作業を実行できますが、年齢差を一致させることはできません。タイムスタンプとGUID署名のみを実行できます。

于 2010-03-25T18:44:01.920 に答える
2

DIAの概要とDbgHelpとの関係、および C++ サンプル。これは基本的に、Paul Arnold が言及した記事の後に私が書いた記事です。

于 2010-09-27T19:48:37.590 に答える