0

関数をトレースするために GDB 用の Python スクリプトを作成しようとしています。

アイデアは、アドレス位置にブレークポイントを設定し、プログラムを実行させてから、プログラムが壊れたときにファイルレジスタ、ベクトル、およびスタックにログを記録し、次の命令がどのアドレスになるかを調べ、その場所にブレークポイントを設定してリンスすることです繰り返します。

私はドキュメントを読み、レジスタ、ベクトル、およびメモリの場所を簡単にダンプできると確信しています。実際の問題は、次のブレークポイントを配置する場所を決定するために現在の命令の逆アセンブリを分析する必要があるため、次の命令の場所を見つけることです。

アップデート

使用せずに、stepiまたはnextiデバッグしているターゲットがハードウェアブレークポイントでのみ機能するため、これらすべてを実行しています。私が知る限り、これらのコマンドはソフトウェアブレークポイントを使用して次の命令でブレークします

GDBにそのようなものはありますか?

4

1 に答える 1

0

はい、gdb でこれを行うことができます。次の命令にブレークポイントを設定しようとする代わりに、コマンドを使用しsiて次の命令にシングル ステップで進むことができます。

于 2016-10-03T18:48:28.293 に答える