gcc编译器、gdb调试器常用命令

函数编译的四个阶段:

1>  预处理。去掉注释、包含文件、宏展开、条件编译…
2>  编译。
3>  汇编。这前三个阶段称为翻译阶段。
4>  链接

gcc常用命令参数

-E        停在预处理阶段
-S        停在编译阶段
-C        停在汇编阶段
-O        编译优化
-o        确定输出文件的名称
-g        产生gdb调试的符号资讯
-c         只编译,不产生可执行文件
-Wall    允许输出所有告警信息


wc命令 查看代码大小

 

ELF文件格式

ELF头

...

未处理数据

ndate全局符号

data只读数据

text代码正文

          

$vim helloword.c

helloworld.c内容如下:
#include 

int main (int argc, char **argv )
{
	printf(“hello,world!\n”);

	return 0;
}


编译并运行成可执行文件

$gcc –o hello helloworld.c
$./hello


分步编译并查看生成文件的类型

$gcc –E helloworld.c –o hello.i  	#生成预编译文件hello.i
$file hello.i                  	 	#查看hello.i的文件类型
$gcc –S helloworld.c –o hello.s  	#生成汇编文件hello.s
$file hello.s                   	#查看hello.s的文件类型
$gcc –c helloworld.c –o hello.o  	#生成目标代码hello.o
$file hello.o                   	#查看hello.o的文件类型


GDB调试工具的使用

gcc编译时使用-g选项生成编译文件,才能使用gdb调试。
gdb常用命令:

l          看源文件。l 2-10 #看源文件的2——10行
b 6       在第6行设置断点
info b   查看断点
r          运行代码
p n       查看变量n的值。同display n
n         单步运行
s          单步运行
c          恢复程序运行
help     帮助
b t       查看栈帧
q         退出


你可能感兴趣的:(gdb,gcc)