在调试程序的时,gcc会给出警告或错误的代码行数。但在普通文本环境中是无法直接获得语句函数的。在GDB中通过命令l(list的缩写)可以查看所有的代码行数,以下我搜集了一些常用的使用list命令的技巧。
(gdb) help list # 查看list命令帮助
(gdb) list # 查看代码执行位置附近10行,假设 15-24
(gdb) list # 再显示10行,即25-34
(gdb) list 38 # 查看第38行周围的 10 行,即33 - 42
(gdb) list - # 查看上一个list命令查看的代码之前的10行,即23-32行
(gdb) list 3,19 # 查看3-19行
(gdb) list main # 查看main函数周围的10行代码
(gdb) list flow.c:23 # 查看flow.c文件第23行周围的10行
(gdb) list flow.c:hello # 查看flow.c文件中函数hello周围的10行
(gdb) list *0x12345678 # 查看地址为 0x12345678 的符号附近的10行代码