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 工具。