attach
process-idinfo files
コマンドで、
現在デバッグ対象となっているプログラムの情報が表示されます)。
このコマンドは、
プロセスIDを引数に取ります。
UNIXプロセスのプロセスIDを知るのに通常使用する方法は、
ps
ユーティリティ、
または、
シェル・コマンドの‘jobs -l’の実行です。
attach
コマンドを実行後<RET>キーを押しても、
コマンドは再実行されません。
attach
コマンドを使用するには、
プロセスをサポートする環境でユーザ・プログラムを実行する必要があります。
例えば、
オペレーティング・システムの存在しないボード・コンピュータのような環境で動作するプログラムに対して、
attach
コマンドを使うことはできません。
さらに、
ユーザは、
プロセスに対してシグナルを送信する権利を持っている必要があります。
attach
コマンドを使用すると、
デバッガは、
まずカレントな作業ディレクトリの中で、
プロセスにより実行されているプログラムを見つけようとします。
(プログラムが見つからなければ)
次に、
ソース・ファイルのサーチ・パス
(see Specifying source directories)
を使用して、
プログラムを見つけようとします。
file
コマンドを使用して、
プログラムをロードすることも可能です。
See Commands to Specify Files。
指定されたプロセスをデバッグする準備が整った後に、
GDBが最初にすることは、
そのプロセスを停止することです。
run
コマンドを使用してプロセスを起動した場合は、
通常使用可能なすべてのGDBコマンドを使用して、
アタッチされたプロセスの状態を調べたり変更したりすることができます。
ブレイクポイントの設定、
ステップ実行、
継続実行、
記憶域の内容の変更が可能です。
プロセスの実行を継続したいのであれば、
GDBがプロセスにアタッチした後に、
continue
コマンドを使用することができます。
detach
detach
コマンドを使用してそのプロセスをGDBの管理から解放することができます。
プロセスからディタッチしても、
そのプロセスは実行を継続します。
detach
コマンド実行後は、
ディタッチされたプロセスと
GDBは互いに完全に依存関係がなくなり、
attach
コマンドによる別のプロセスへのアタッチや、
run
コマンドによる別のプロセスの起動が可能になります。
detach
コマンドを実行後<RET>キーを押しても、
detach
コマンドは再実行されません。
プロセスがアタッチされている状態で、
GDBを終了したりrun
コマンドを使用したりすると、
アタッチされたプロセスを終了させてしまいます。
デフォルトの状態では、
このようなことを実行しようとすると、
GDBが確認を求めてきます。
この確認処理を行うか否かは、
set confirm
コマンドで設定可能です
(see Optional warnings and messages)。