Next: , Previous: Arguments, Up: Running


4.4 ユーザ・プログラムの環境

環境とは、 環境変数とその値の集合のことです。 環境変数は、 慣例として、 ユーザ名、 ユーザのホーム・ディレクトリ、 端末タイプ、 実行プログラムのサーチ・パスなどを記録します。 通常、 環境変数はシェル上で設定され、 ユーザの実行するすべてのプログラムによって継承されます。 デバッグ時には、 GDBを終了・再起動せずに環境を変更して、 ユーザ・プログラムを実行できると便利でしょう。

path directory
directoryで指定されるディレクトリを環境変数PATH (実行ファイルのサーチ・パス) の先頭に追加します。 これは、 GDBとユーザ・プログラムの両方に対して有効です。 ‘:’ (コロン) またはスペースで区切られた複数のディレクトリを指定することもできます。 環境変数PATHの中に既にdirectoryが含まれている場合には、 directoryは環境変数PATHの先頭に移動されます。 これにより、 directoryはより早く検索されることになります。

文字列‘$cwd’によって、 GDBがパスを検索する時点における作業ディレクトリを参照することができます。 ‘.’ (ピリオド) を使用すると、 pathコマンドを実行したディレクトリを参照することになります。 directory引数に‘.’ (ピリオド) が含まれていると、 GDBはまずそれを (カレント・ディレクトリに) 置き換えてから、 サーチ・パスに追加します。


show paths
実行ファイルを検索するパスの一覧 (環境変数PATHの値)を表示します。


show environment [varname]
ユーザ・プログラム起動時に渡される環境変数varnameの値を表示します。 varnameが指定されない場合は、 プログラムに渡されるすべての環境変数の名前と値が表示されます。 environmentenvに省略可能です。


set environment varname [=] value
環境変数varnameの値としてvalueをセットします。 値の変更はユーザ・プログラムに対してのみ有効で、 GDBに対しては無効です。 valueには任意の文字列が指定可能です。 環境変数の値は単なる文字列であり、 その解釈はユーザ・プログラムに委ねられています。 valueは必須パラメータではありません。 省略された場合には、 変数には空文字列がセットされます。

例えば、 以下のコマンドは、 後にUNIXプログラムが実行されるときのユーザ名として‘foo’をセットします (‘=’の前後のスペースは見やすくするためのもので、 実際には必要ありません)。

          set env USER = foo


unset environment varname
ユーザ・プログラムに渡される環境から、 環境変数varnameを削除します。 これは、 ‘set env varname =’とは異なります。 unset environmentは、 環境変数の値として空文字列をセットするのではなく、 環境変数そのものを環境から削除します。

注意: GDBは、 環境変数SHELLにより指定されるシェル (環境変数SHELLが設定されていない場合には/bin/sh) を使用してプログラムを実行します。 SHELL環境変数の指定するシェルが初期化ファイルを実行するものである場合 (例えば、 C-shellの.cshrc、 BASHの.bashrc)、 初期化ファイルの中で設定された環境変数はユーザ・プログラムに影響を与えます。 環境変数の設定は、 .login.profileのように、 ユーザがシステム内に入るときに実行されるファイルに移したほうがよいでしょう。