Previous: Command Files, Up: Sequences


15.4 制御された出力を得るためのコマンド

コマンド・ファイルやユーザ定義コマンドの実行中には、 通常のGDBの出力は抑止されます。 唯一出力されるのは、 定義内のコマンドが明示的に表示するメッセージだけです。 ここでは、 ユーザが希望するとおりの出力を生成するのに役に立つ、 3つのコマンドについて説明します。

echo text
textを表示します。 通常は表示されない文字も、 Cのエスケープ・シーケンスを使うことでtextの中に含めることができます。 例えば、 改行コードを表示するには‘\n’を使います。 明示的に指定しない限り、 改行コードは表示されません。 標準的なCのエスケープ・シーケンスに加えて、 バックスラッシュの後ろに空白を置くことで、 空白が表わされます。 これは、 先頭や末尾に空白のある文字列を表示するのに便利です。 というのは、 こうしないと、 引数の先頭や末尾の空白は削除されるからです。 ‘ and foo = ’を表示するには、 ‘echo \ and foo = \ ’を実行してください。

Cと同様、 textの末尾にバックスラッシュを置くことで、 コマンドを次の行以降に継続することができます。 例えば、

          echo This is some text\n\
          which is continued\n\
          onto several lines.\n

          echo This is some text\n
          echo which is continued\n
          echo onto several lines.\n

と同じ出力をもたらします。


output expression
expressionの値を表示し、 それ以外には何も表示しません。 改行コードも、 ‘$nn = ’も表示されません。 expressionの値は値ヒストリには入りません。 式の詳細については、 See Expressions
output/fmt expression
expressionの値を、 fmtで指定されるフォーマットで表示します。 printコマンドと同じフォーマットを指定することができます。 詳細については、 See Output formats


printf string, expressions...
stringで指定された文字列にしたがってexpressionsの値を表示します。 複数のexpressionsはカンマで区切られ、 数値かポインタのいずれかを指定できます。 これらの値は、 ユーザ・プログラムからCのサブルーチン
          printf (string, expressions...);

を実行した場合と同様に、 stringの指定にしたがって表示されます。

例えば、 次のようにして2つの値を16進数で表示することができます。

          printf "foo, bar-foo = 0x%x, 0x%x\n", foo, bar-foo

フォーマットを指定する文字列の中で使えるバックスラッシュ・エスケープ・シーケンスは、 バックスラッシュとそれに続く単一文字から構成される簡単なものだけです。