4

どの命令が実行されるか把握したい Windows上のプログラムにコマンドラインフラグが渡されたときに、コンパイルされた(最適化された)バイナリがあり、デバッグシンボルもソートのものもありません。私はその違いがほんの一握りの指示以上ではないことを知っています。バイナリの動作をログに記録する?

どうすればこのことを知ることができますか?特定の期間にプログラムが実行する命令を正確に記録する方法はありますか?
(これはがないだけのフラグがあるため、コマンドラインフラグのループに設定されている、すべてのシステムコールを伴わないことに注意してください。)

答えて

0

あなたは命令ベースのプロファイリングを使用して、これを行うにはAMDのCodeAnalystを使用することができます方法。また、APIを使用してアプリ内でイベントをトリガーし、特定の地域を監視することができます。あなたは、私が理解しているように、逆アセンブルを使用することもできます。ハイレベルのコード操作と低レベルのマシンコードの両方を意味する「命令」という単語を使用します(実行は変更できません。高レベル操作)。

+0

ありがとうございます!それは本当に素晴らしいツールのように見えます。しかし、ほとんどの命令はサンプリングされないので、何かをキャッチしないことがよくあります。それを修正する方法に関するアイデア(可能なら)? – Mehrdad

+0

@Mehrdad:時間ベースのような他のサンプリング方法を試すことができます。 (そこにサンプルチュートリアルがあるはずです)。 – Necrolis

関連する問題