GCC and GDB
plus2047 于 2021-10-19 发布
GCC 编译选项及其功能
-g
编译时加入调试信息。可以在完成后使用 strip
命令删除用于调试的信息。
-Wall
打印所有警告信息。
-o
指定要生成的执行文件的名。
-L
指定连接库文件的目录。
-I
指定 C 源码的头文件的目录。
-O
指定编译优化级别,从 O2到O6。
-c
仅仅进行编译而不进行连接,生成目标文件。
-fPic
生成相对地址的代码,可用于最后生成动态连接库。
-static
强制生成静态连接的程序。
GDB 使用
help NAME
显示指定命令的帮助信息。
file FILE
装载指定的可执行文件进行调试。
break filename:linenumber
设置断点。
break linenumber
设置断点,适用于单个文件。
break function_name
设置断点为某个函数。
run or r
运行,直到到达某个断点或者退出。
display EXPR
每次程序停止后显示表达式的值。表达式由程序定义的变量组成。
print EXPR
显示表达式 EXPR 的值。
list or l
显示源代码段。
next or n
在不单步执行进入其他函数的情况下,向前执行一行源代码。
continue or c
继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。
kill
终止正被调试的程序。
clear filename:linenum
删除设置在特定源文件、特定行上的断点。
bt
显示所有的调用栈帧。该命令可用来显示函数的调用顺序。
info break
显示当前断点清单,包括到达断点处的次数等。
info files
显示被调试文件的详细信息。
info func
显示所有的函数名称。
info local
显示当函数中的局部变量信息。
info prog
显示被调试程序的执行状态。
info var
显示所有的全局和静态变量名称。
make
在不退出 gdb 的情况下运行 make 工具。