5

実行可能ファイルの多くの場所にサードパートのライブラリ関数呼び出しが散在しています。私の実行可能ファイルはデバッグシンボルを使用して構築されていますが、サードパーティライブラリにデバッグシンボルがないため、関数にブレークポイントを設定できません。呼び出しスタックを調べるために、ライブラリ関数が呼び出されるたびにブレークポイントを設定したいと思います。実行可能ファイル内のライブラリ関数呼び出しのすべての呼び出しでブレークポイントを設定するにはどうすればよいですか。

4

1 に答える 1

4

唯一の方法は次のとおりだと思います。

  • コード内でこの関数の呼び出しを見つけます。
  • その行にブレークポイントを作成します。
  • デバッガーを実行してそこで停止します。
  • gdbに書き込んでnexti、最初の関数命令を取得します。
  • その関数の先頭を指す現在のeipを取得します。
  • eipが指すアドレスに新しいブレークポイントを作成します。
于 2012-09-01T17:56:13.790 に答える