すでに動作中のプログラムをデバッグしなければならないことがあります。動作中のプロセスにデバッグ機能を接続しなければならないのは、次のような場合です。
動作中のサーバーをデバッグしたいが、停止させたくない
動作中の GUI プログラムをデバッグしたいが、再起動したくない
プログラムが無限ループに入っているかもしれないので、プログラムを停止させずにデバッグしたい
このような場合は、動作中のプログラムの プロセス ID (pid) を引数として dbx コマンドに渡せば、そのプログラムに dbx を接続することができます。
デバッグを終了すると、detach コマンドが使用され、プロセスを終了することなく dbx の制御からプログラムを解放することができます。
動作中のプロセスに接続されているときに dbx を終了すると、dbx は終了前に自動的な切り離しを行います。
dbx から独立して動作しているプログラムに dbx を接続するには、次のようにします。
dbx がすでに起動され、動作している場合は、次のように入力します。
(dbx) debug program_name process_ID
プログラム名 program_name はハイフン "-" で省略することができます。dbx はプロセス ID が process_ID に対応するプログラムを自動的に見つけて読み込みます。
dbx が動作していない場合は、プロセス ID (pid) を引数にして dbx を起動します。
% dbx program_name process_ID
プログラムに dbx を接続すると、そのプログラムは実行を停止します。このプログラムは、dbx に読み込んだプログラムの場合と同様にして調べることができます。任意のイベント管理コマンドまたはプロセス制御コマンドを使用してデバッグできます。
プログラムのデバッグが終了したら、detach コマンドを使用して dbx をプログラムから切り離してください。プログラムは dbx から独立して動作を再開します。
dbx の制御下から動作中のプロセスを切り離すには、次のように入力します。
(dbx) detach