予測可能な場所にあるプロセスへのアタッチ

予測可能な場所にあるプロセスにアタッチするには、ループ関数をプログラムに追加し、デバッガーが制御をとり、割り込みをするまで実行を続けるようにする方法があります。

  1. 次のようなコードをアプリケーションに追加します。

    volatile int endStallForDebugger=0;
      
    void stallForDebugger()
    {
            while (!endStallForDebugger) ;
    }
      
    int main()
    {
            ...
            stallForDebugger();
            ...
    }
  2. このバージョンのプログラムを実行します。

  3. 実行中のプロセスにデバッガーをアタッチします。

  4. Ctrl+C または $stoponattach でプログラムを停止します。

  5. set variable デバッガーコマンドを使用して、stallForDebugger 変数に非ゼロ値を代入し、プロセスを再開してループから出られるようにします。次に例を示します。

    (idb) 
    					 set variable endStallForDebugger = 1
    (idb) 
    					 # set any needed breakpoints, and so on
    (idb) 
    					 cont

関連情報


このヘルプトピックについてのフィードバックを送信