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

0 篇文章 0 订阅

函数编译的四个阶段:

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 <stdio.h>

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         退出


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值