[Linux] 如何使用GDB调试(持续更新中)

一、程序的编译

1.1 gcc

GCC  (GNU Compiler Collection)是 GNU 编译器套件,它支持多种编程语言的编译,包括 C、C++、Objective-C、Fortran、Ada 等。当你直接使用 GCC 命令时,你通常是对单个文件进行编译。基本的使用方式如下:

gcc [选项] 源文件 [-o 目标文件]

  • 选项:可以指定编译器的行为,比如 -c 只编译不链接,-o 指定输出文件名,-g 为调试生成信息等。
  • 源文件:需要被编译的源代码文件。
  • 目标文件:可执行文件或对象文件的名称,默认是 a.out

 例如,如果你有一个名为 hello.c 的 C 程序,你可以这样编译它:

默认情况:

 GCC 在不指定特定优化或调试选项时,默认倾向于一个比较平衡的编译设置,既不开启高阶优化也不特别包含调试信息。

gcc -o hello hello.c   
 Debug 版本

要编译一个便于调试的版本,通常会加上 -g 选项来包含调试信息,这样可以在调试器中查看变量值、步进执行等。示例命令如下:

gcc -g -o debug hello.c
 Release 版本

为了编译一个优化过的、用于发布的 "Release" 版本,可以使用 -O 系列的优化级别,其中 -O2-O3 是常用的优化等级,同时一般不加 -g 以减小最终二进制的体积并提高运行效率。示例命令如下:

gcc -O2 -o release hello.c

 这将生成一个名为 hello 的可执行文件。

1.2 make

        Make 是一个更高级的构建工具,它通过读取名为 Makefile 的特殊文件来自动构建项目。Makefile 中定义了一系列规则,说明了如何从源代码文件构建最终的可执行文件或其他目标文件。这些规则包括依赖关系(哪些文件依赖于其他文件)、编译命令等。使用 Make 的主要优势在于自动化和管理大型项目中的编译过程。

        基本的 Make 使用方法很简单,只需在命令行输入 make 即可。Make 会查找当前目录下的 Makefile,并根据其中的规则自动编译需要更新的文件。

Makefile文件:

hello: hello.o gcc -o

        hello hello.o

hello.o: hello.c

        gcc -c hello.c

        在这个例子中,hello 是最终的目标,它依赖于 hello.o。而 hello.o 则依赖于 hello.c。当运行 make 时,Make 会检查依赖关系,如果有需要重新编译的文件,它会自动调用相应的 GCC 命令来完成编译。

二、指令集汇总

        在命令行中输入以下命令即可调试:

gdb [生成的可执行文件]

# 例如 gcc -o TEST hello.c  ,这里TEST文件就是生产的可执行文件   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值