在linux中编译C语言程序,那么就一定会用到gcc

预处理:进行宏替换,去除注释,条件编译,包含头文件,保留pragma

       gcc -E test.c -o test.i//将test预处理输出test.i文件

【Linux】gcc及gdb命令用法总结


编译:进行词法分析,语法分析,语义分析,优化等处理,生成汇编代码

       gcc -S test.i//将预处理输出文件test.i汇编成test.s

【Linux】gcc及gdb命令用法总结


汇编:生成test.o机器可识别代码,.o是可重定位的目标文件

       gcc -c test.s//只编译不链接

【Linux】gcc及gdb命令用法总结


链接:生成可执行文件

       gcc test.o//默认生成a.out,可以-o重定向到一个文件

【Linux】gcc及gdb命令用法总结


gcc选项:

(1)-E 只**预处理,不会生成文件,需要重定向到一个输出文件

(2)-S 编译到汇编语言不进行汇编和链接

(3)-c 编译到目标代码

(4)-o 文件输出到文件

(5)-g 生成调试信息,当使用gdb调试时,需要用到


【Linux】gcc及gdb命令用法总结

代码编写完成,我们一定会用到调试,调试就需要用到gdb了,下面是使用gdb调试时常用的指令 

gdb

可执行文件程序名

l (字母l)

查看当前文件十行

l 函数名

查看当前文件制定函数

b 行号

设置断点

i b

查看设置的断点

执行到断点处

单步调试,进入函数体内

执行一步操作finish   跳出函数体

u

跳过单词循环

whatis  变量名

查看变量类型

print 变量名 

查看变量值

 q 

退出


l 函数名  显示函数代码

【Linux】gcc及gdb命令用法总结


设置断点和查看断点

【Linux】gcc及gdb命令用法总结

【Linux】gcc及gdb命令用法总结


查看数据的值和类型

【Linux】gcc及gdb命令用法总结


跳出函数

【Linux】gcc及gdb命令用法总结


退出

【Linux】gcc及gdb命令用法总结

相关文章: