使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。
GCC最基本的用法∶ gcc [参数] [文件名称]
# gcc test.c -o app |
-L:指定动态库路径。示例:gcc test.c -o app -L/usr/lib
-I:指定头文件存放的路径。示例:gcc test.c -o app -I/usr/include
-l: 指定库名称。示例:示例:gcc test.c -o app -lpthread
我们通常写C程序,会使用命令gcc test.c -o test,对源文件进行编译,但是如果我们要对程序进行调试,就必须在编译源文件时,使用-g参数,编译时使用的命令为:gcc -g test.c -o test
GDB工具也支持自动补全,比如: list命令可以简写l ,run命令可以简写r
[root@wbyq test]# gcc -g test.c -o test |
[root@wbyq test]# gdb a.out |
a.out 表示是要调试的可执行文件名称。
注意没有输入新命令,敲回车GDB会再次执行上一条命令
使用breakpoints (可简写为b)命令给程序添加断点,共有下面几种情况:
b <函数名> 在某函数入口处添加断点; b <行号> 在指定行添加断点 b <文件名:行号> 在指定文件的指定行添加断点 b <行号 if 条件> 当条件为真时,指定行号处断点生效,例 b 5 if i=10 ,当i=10时,第5行断点生效 |
添加完断点之后,我们可以使用【info break】命令,查看所有的断点;
设置断点之后执行run命令开始运行程序;
输入next命令可实现单步运行
输入continue命令可实现连续运行;
如果想查看某一变量的值,则使用print/p + 变量名;