8.4. 列出源代码

查看您要调试的程序的源代码:

(gdb) list

在开始执行要调试的程序前,g db 会显示源代码的前十个行,以及这个命令的后续使用列出了另外 10 行。开始执行后,g db 会显示周围执行所在的行,通常是在您设置断点时。

您还可以显示括起特定行的代码:

(gdb) list file_name:line_number

同样,要显示周围特定功能开头的代码:

(gdb) list file_name:function_name

请注意,您可以更改 list 命令显示的行数:

(gdb) set listsize number

例 8.4. 列出 fibonacci Binary 文件的源代码

例 8.1 “使用调试信息编译 C 程序” 中列出的 fibonacci.c 文件准确有 17 行。假设您已使用调试信息并希望 gdb 实用程序能够列出整个源代码,您可以运行以下命令来将列出的行数更改为 20:

(gdb) set listsize 20

现在,您可以通过运行 list 命令且没有额外参数来显示要调试的文件的整个源代码:

(gdb) list
1       #include <stdio.h>
2       #include <limits.h>
3
4       int main (int argc, char *argv[]) {
5         unsigned long int a = 0;
6         unsigned long int b = 1;
7         unsigned long int sum;
8
9         while (b < LONG_MAX) {
10          printf("%ld ", b);
11          sum = a + b;
12          a = b;
13          b = sum;
14        }
15
16        return 0;
17      }