Next: , Previous: Compilation, Up: Running


4.2 ユーザ・プログラムの起動

run
r
GDB配下でユーザ・プログラムの実行を開始するにはrunコマンドを使用してください。 (VxWorks以外の環境では) 最初にプログラム名を指定する必要があります。 これには、 GDBへの引数を使用する方法 (see Getting In and Out of GDB) と、 fileコマンドまたはexec-fileコマンドを使用する方法 (see Commands to specify files) とがあります。

プロセスをサポートする環境でプログラムを実行している場合、 runコマンドは下位プロセスを生成し、 そのプロセスにプログラムを実行させます (プロセスをサポートしていない環境では、 runコマンドはプログラムの先頭アドレスにジャンプします)。

プログラムの実行は、 上位プロセスから受け取る情報によって影響されます。 GDBはこの情報を指定する手段を提供しています。 これは、 ユーザ・プログラムが起動されるに実行されていなければなりません (ユーザ・プログラムの実行後にその情報を変更することも可能ですが、 その変更結果は、 次にプログラムを実行したときに初めて有効になります)。 この情報は、 4つに分類することができます。

引数
ユーザ・プログラムに与える引数を、 runコマンドへの引数として指定します。 ターゲット上でシェルが使用可能であれば、 引数を表現するのに通常使用する手法 (例えば、 ワイルドカード拡張や変数による代替など) が利用できるよう、 シェルを経由して引数を渡します。 UNIXシステムでは、 SHELL環境変数によって、 使用されるシェルを選択することができます。 See Your program's arguments
環境
ユーザ・プログラムは通常、 GDBの環境を継承します。 GDBのset environmentコマンドと unset environmentコマンドを使用して、 ユーザ・プログラムの実行に影響する環境の一部を変更することができます。 See Your program's environment
作業ディレクトリ
ユーザ・プログラムはGDBの作業ディレクトリを継承します。 GDBの作業ディレクトリは、 GDBのcdコマンドで設定可能です。 See Your program's working directory
標準入力、標準出力
ユーザ・プログラムは通常、 GDBが標準入力、 標準出力として使用しているのと同一のデバイスを、 標準入力、 標準出力として使用します。 runコマンドのコマンド・ライン上で、 標準入力、 標準出力をリダイレクトすることも可能です。 また、 ttyコマンドによって別のデバイスを割り当てることも可能です。 See Your program's input and output

注意: 入出力のリダイレクトは機能しますが、 デバッグ中のプログラムの出力を、 パイプを使用して他のプログラムに渡すことはできません。 このようなことをすると、 GDBは誤って、 別のプログラムのデバッグを開始してしまうでしょう。

runコマンドを実行すると、 ユーザ・プログラムはすぐに実行を始めます。 プログラムを停止させる方法については、 See Stopping and continuing。 プログラムが停止すると、 printコマンドまたはcallコマンドを使用して、 プログラム内の関数を呼び出すことができます。 See Examining Data

GDBが最後にシンボル情報を読み込んだ後に、 シンボル・ファイルの修正タイムスタンプが変更されている場合、 GDBはシンボル・テーブルを破棄し再読み込みを行います。 この場合、 GDBは、 その時点におけるブレイクポイントの設定を保持しようと試みます。