List - Debugging with GDB
Description: Debugging with GDB

Next: Specify Location, Up: Source

### 9.1 Printing Source Lines

To print lines from a source file, use the `list` command (abbreviated `l`). By default, ten lines are printed. There are several ways to specify what part of the file you want to print; see Specify Location, for the full list.

Here are the forms of the `list` command most commonly used:

`list` linenum
  Print lines centered around line number linenum in the current source file.
`list` function
  Print lines centered around the beginning of function function.
`list`
  Print more lines. If the last lines printed were printed with a `list` command, this prints lines following the last lines printed; however, if the last line printed was a solitary line printed as part of displaying a stack frame (see Examining the Stack), this prints lines centered around that line.
`list -`
  Print lines just before the lines last printed.

By default, gdb prints ten source lines with any of these forms of the `list` command. You can change this using `set listsize`:

`set listsize` count
  Make the `list` command display count source lines (unless the `list` argument explicitly specifies some other number). Setting count to 0 means there's no limit.

`show listsize`
  Display the number of lines that `list` prints.

Repeating a `list` command with <RET> discards the argument, so it is equivalent to typing just `list`. This is more useful than listing the same lines again. An exception is made for an argument of ‘`-`’; that argument is preserved in repetition so that each repetition moves up in the source file.

In general, the `list` command expects you to supply zero, one or two linespecs. Linespecs specify source lines; there are several ways of writing them (see Specify Location), but the effect is always to specify some source line.

Here is a complete description of the possible arguments for `list`:

`list` linespec
  Print lines centered around the line specified by linespec.
`list` first`,`last
  Print lines from first to last. Both arguments are linespecs. When a `list` command has two linespecs, and the source file of the second linespec is omitted, this refers to the same source file as the first linespec.
`list ,`last
  Print lines ending with last.
`list` first`,`
  Print lines starting with first.
`list +`
  Print lines just after the lines last printed.
`list -`
  Print lines just before the lines last printed.
`list`
  As described in the preceding table.