SymLoadModuleEx
PDBファイルからシンボルをロードするために呼び出して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ファイルから特定のアドレスに対応するシンボルを検索するためのより良い方法はありますか?