次: , 前: Working Directory, 上: Running


4.6 ユーザ・プログラムの入出力

GDB配下で実行されるプログラムは、 デフォルトでは、 GDBと同一の端末に対して入出力を行います。 GDBは、 ユーザとのやりとりのために、 端末モードをGDB用に変更します。 このとき、 ユーザ・プログラムが使用していた端末モードは記録され、 ユーザ・プログラムを継続実行すると、 そのモードに戻ります。

info terminal
ユーザ・プログラムが使用している端末モードに関してGDBが記録している情報を表示します。

runコマンドにおいてシェルのリダイレクト機能を使用することによって、 ユーザ・プログラムの入出力をリダイレクトすることが可能です。 例えば、

     run > outfile

はユーザ・プログラムの実行を開始し、 その出力をファイルoutfileに書き込みます。

ユーザ・プログラムの入出力先を指定する別の方法に、 ttyコマンドがあります。 このコマンドはファイル名を引数として取り、 そのファイルを後に実行されるrunコマンドのデフォルトの入出力先とします。 このコマンドはまた、 後のrunコマンドにより生成される子プロセスを制御する端末を変更します。 例えば、

     tty /dev/ttyb

は、 それ以降に実行されるrunコマンドによって起動されるプロセスの デフォルトの入出力先および制御端末を/dev/ttyb端末とします。

runコマンド実行時に明示的にリダイレクト先を指定することで、 ttyコマンドで指定された入出力装置を変更することができますが、 制御端末の設定は変更できません。

ttyコマンドを使用した場合も、 runコマンドで入力をリダイレクトした場合も、 ユーザ・プログラムの入力元だけが変更されます。 これらのコマンドを実行しても、 GDBの入力元は、ユーザの使用している端末のままです。