SymLoadModuleExPDBファイルからシンボルをロードするために呼び出してSymFromAddrから、そのPDBからシンボルを検索するために使用しようとしています。BaseOfDllただし、パラメータに何を渡すかがわかりませんDllSize。ドキュメントには、PDBファイルをロードするときに、これらのパラメータを0にすることはできないと明示的に記載されており、実際に0を渡そうとすると失敗しERROR_INVALID_PARAMETERます。
私のコードは次のようになります。
SymSetOptions(SYMOPT_LOAD_LINES);
HANDLE hprocess = GetCurrentProcess();
if (!SymInitialize(hprocess, NULL, FALSE))
die("SymInitialize");
if(SymLoadModuleEx(hprocess, NULL, "full path to some PDB file.pdb", NULL,
0, // What to pass here?
0, // What to pass here?
NULL, 0) == 0)
{
die("SymLoadModuleEx");
}
PDBファイルをロードするときに何を渡して何を渡すBaseOfDllかをどのように理解しますか?DllSize問題のPDBファイルは別のプログラム実行可能ファイル(DLLではない)のシンボルファイルであり、議論のために、PDBが生成された元のEXEにアクセスできないと仮定します。
または、PDBファイルから特定のアドレスに対応するシンボルを検索するためのより良い方法はありますか?