你的位置:首页 > 操作系统

[操作系统]Linux (五) GCC 和 GDB


1  GCC = GNU C Compiler

1)  pre-processing (预处理)

$ gcc -E -o hello.i hello.c  // -E 预处理后停止 

2)  compiling (编译)

$ gcc -S -o hello.s hello.i  // -S 编译后停止

3  assembling (汇编)

$ gcc -c hello.s -o hello.o  //  -c  汇编后停止; hello.o 是目标文件(二进制代码)

4  linking (链接)

$ gcc -o hello hello.o

 例 1)  hello.c

/* hello.c */#include <stdio.h>#include <stdlib.h>int main(){  printf("Hello!\n");  exit(0);}

hello
$ gcc -o hello hello.c$ ./helloHello!

 

2  GDB

1)  进入

$ gdb test  // 注意: 程序用 gcc 编译时要加上 -g 选项

2)  调试

   [l]  查看文件

   [b  5]  在第5行设断点;   [info  b] 查看断点设置情况

   [r]  运行代码;               [r  10]  从第10行开始运行

   [p  i]  查看变量的值;      [watch  n]  观察变量n的变化 (常用在某一循环处)

   [n]  单步运行 (一次只运行一条语句)

   [c]   继续运行 (直到再次遇到断点)

3) 退出

    [q]