Menu Close

3.3.5. GDB を使用したアプリケーションのシステムコールの傍受

GNU デバッガー (GDB) により、プログラムの実行中に発生するさまざまな状況で実行を停止できます。プログラムがシステムコールを実行するときに実行を停止するには、GDB の チェックポイント を使用します。

前提条件

  • GDB ブレークポイントの使用量を理解している。
  • GDB がプログラムに割り当てられている。

手順

  1. キャッチポイントを設定します。

    (gdb) catch syscall syscall-name

    catch syscall コマンドは、プログラムがシステムコールを実行する際に実行を停止する特別なブレークポイントを設定します。

    syscall-name オプションは、コールの名前を指定します。様々なシステム呼び出しに対して複数のキャッチポイントを指定することができます。syscall-name オプションを指定しないと、システムコールで GDB が停止します。

  2. プログラムの実行を開始します。

    • プログラムにより、実行が開始していない場合は開始します。

      (gdb) r
    • プログラムの実行が停止した場合は、再開します。

      (gdb) c
  3. GDB は、プログラムが指定のシステムコールを実行した後に実行を停止します。

関連情報