0

次の投稿からシンボル名を取得するための非常に良い方法を見ました。

Win32-Cコードからのバックトレース

しかし、ファイル名と行番号を取得するのはどうでしょうか。SymGetLineFromAddr64を使用しようとしましたが、このデバッグ情報を取得できませんでした。

4

1 に答える 1

3

このデバッグ情報を取得できず、コードが正しかった場合、問題はオプションにある可能性があります。SYMOPT_LOAD_LINESこの情報をロードする必要があります:

SymSetOptions(SYMOPT_LOAD_LINES);

次に、提供したリンクのコードを使用していると仮定すると、次のようになります。

DWORD  dwDisplacement;
IMAGEHLP_LINE64 line;

SymGetLineFromAddr64(process, (DWORD64)stack[i], &dwDisplacement, &line);

lineこれらのメンバーにアクセスできるようになりました ( IMAGEHLP_LINE64 構造体から):

DWORD   LineNumber;
PTSTR   FileName;
于 2012-09-17T22:43:46.037 に答える