Next: , Previous: Source, Up: Source


7.1 ソース行の表示

ソース・ファイル内の行を表示するには、 listコマンド (省略形はl) を使用します。 デフォルトでは、 10行が表示されます。 ソース・ファイルのどの部分を表示するかを指定する方法がいくつかあります。

最もよく使われるlistコマンドの形式を以下に示します。

list linenum
現在のソース・ファイルの行番号linenumを中心に、 その前後の行を表示します。
list function
関数functionの先頭を中心に、 その前後の行を表示します。
list
ソース・ファイル行の続きを表示します。 既に表示された最後の行がlistコマンドによって表示されたのであれば、 その最後の行の次の行以降が表示されます。 しかし、 既に表示された最後の行が、 スタック・フレーム (see Examining the Stack) の表示の一部として1行だけ表示されたのであれば、 その行の前後の行が表示されます。
list -
前回表示された行の前に位置する行を表示します。

listコマンドを上記の形式のいずれかによって実行すると、 GDBはデフォルトでは10行のソース行を表示します。 これはset listsizeコマンドによって変更することができます。

set listsize count
listコマンドで表示される行数をcountに設定します (listコマンドの引数で他の値が明示的に指定された場合は、 この設定は効力を持ちません)。


show listsize
listコマンドが表示する行数を表示します。

listコマンドを実行後、 <RET>キーによってlistコマンドを実行した場合、 引数は破棄されます。 したがって、 これは単にlistと入力して実行したのと同じことになります。 同じ行が繰り返し表示されるよりも、 この方が役に立つでしょう。 ただし、 引数‘-’は例外となります。 この引数は繰り返し実行の際にも維持されるので、 繰り返し実行することで、 ソース・ファイルの内容がさかのぼって表示されていきます。

一般的には、 listコマンドは、 ユーザによって0個、 1個、 または2個の行指定linespec)が与えられることを期待しています。 ここで行指定とは、 ソース行を指定するものです。 いくつかの記述方法がありますが、 いずれも結果的には何らかのソース行を指定するものです。 listコマンドの引数として使用できる引数の完全な説明を以下に示します。

list linespec
linespecによって指定される行を中心に、 その前後の行を表示します。
list first,last
first行からlast行までを表示します。 両引数はいずれも行指定です。
list ,last
last行までを表示します。
list first,
first行以降を表示します。
list +
最後に表示された行の次の行以降を表示します。
list -
最後に表示された行の前の行以前を表示します。
list
前述のとおり。

以下に、 ソースの特定の1行を指定する方法を示します。 これは、 いずれも行指定です。

number
現在のソース・ファイルの行番号numberの行を指定します。 listコマンドの引数に2つの行指定がある場合、 2つめの行指定は、 最初の行指定と同一のソース・ファイルを指定します。
+offset
最後に表示された行からoffsetで指定される行数だけ下にある行を指定します。 2つの行指定を引数として持つlistコマンドにおいて、 これが2つめの行指定として使用される場合、 最初の行指定からoffsetで指定される行数だけ下の行を指定します。
-offset
最後に表示された行からoffsetで指定される行数だけ上にある行を指定します。
filename:number
ソース・ファイルfilenameの行番号numberの行を指定します。
function
関数functionの本体の先頭行を指定します。 例えばC言語では、 左括弧 (‘{’) のある行を指します。
filename:function
ファイルfilename内の関数functionの本体を開始する左括弧 (‘{’) のある行を指定します。 異なるソース・ファイルの中に同一の名前の関数が複数ある場合にのみ、 あいまいさを回避するために、 関数名とともにファイル名を指定する必要があります。
*address
プログラム・アドレスaddressを含む行を指定します。 addressには任意の式を指定することができます。