4

コマンドラインフラグがWindows上のプログラムに渡されたときにどの命令が異なる方法で実行されるかを理解したいと思います。そのプログラムのコンパイル済み(および最適化済み)のバイナリがあり、デバッグシンボルなどはありません。違いはほんの一握りの指示にすぎないことを私は知っています。

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

4

1 に答える 1

0

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

于 2011-07-02T14:35:38.313 に答える