在编译过程中,gcc编译器提供了-g选项来生成调试信息。其中,-ggdb和-g都是用于生成调试信息的选项,但它们之间有一些区别。 -ggdb选项是专门为gdb(GNU调试器)设计的,它会生成更丰富的调试信息,以便gdb能够更好地进行调试。使用-ggdb选项编译的程序在使用gdb调试时,可以提供更详细的源代码级调试信息,如变量名、函数...
1. -g 编译带调试信息的可执行文件 # -g 选项告诉 GCC 产生能被 GNU 调试器GDB使用的调试信息,以调试程序。 2. -O[n] 优化源代码 # 所谓优化,例如省略掉代码中从未使用过的变量、直接将常量表达式用结果值代替等等,这些操作 # 会缩减目标文件所包含的代码量,提高最终生成的可执行文件的运行效率。 # -O...
1.debug版本,调试版本,编译阶段会加入某些调试信息 编译时,加入-g选项,可生成debug版本 2.release版本,发行版本,没有调试信息 gcc默认生成release版本 调试方法: gdb debug版本可执行文件 显示源码: l(list)//(默认显示main函数所在文件的源码) list filename:行号 ...
在大多数使用 stabs 格式的系统中,-g 选项会使能额外的、只有 GDB 能用的调试信息;这种额外信息能够令 GDB 更好的进行调试,但可能使得其他调试器发生崩溃,或者拒绝对可执行程序进行解析。如果你想要针对是否额外信息进行控制,可以使用 -gstabs+, -gstabs, -gxcoff+, -gxcoff, 或 -gvms 等选项。
-g: 在编译时产生调试信息,使用gdb工具时使用。 实例: 假设源程序文件名为test.c 1. 预处理,.c文件 -> .i文件。 gcc -E test.c -o test.i 2. 编译,.i文件 -> .s文件。 gcc -S test.i -o test.s 将预处理过程生成的.i后缀的文件转化成汇编文件,里面存储的是相应的汇编代码,这个过程叫做编译...
4、动态的改变你程序的执行环境。 在可以使用gdb调试程序之前,必须使用-g 或者 -ggdb编译选项 编译源文件。 总之: gcc就是一个纯编译器而make更牛逼些 包括了gcc 只有把makefile解决 一切ok. gdb调试C程序先要用gcc编译,见上面写的两条命令。然后就可以用gdb来调试了。
$ gcc -g test.c -o test 1. 虽然这段程序没有错误,但调试完全正确的程序可以更加了解gdb 的使用流程。接下来就启动gdb 进行调试。注意,gdb 进行调试的是可执行文件,而不是如".c"的源代码,因此,需要先通过gcc 编译生成可执行文件才能用gdb 进行调试。
6.在用gcc编译c 文件时,为了能够使用STL,需要加参数 –lstdc ,但这并不代表 gcc –lstdc 和 g 等价,它们的区别不仅仅是这个 主要参数 -g - turn on debugging (so GDB gives morefriendly output)-Wall - turns on most warnings-O or -O2 - turn on optimizations-o - name of the output file-c ...
6)在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价,它们的区别不仅仅是这个,主要参数: -g - turn on debugging (so GDB gives morefriendly output) -Wall - turns on most warnings -O or -O2 - turn on optimizations ...