gcc 与g++ 的使用
- 格式:docx
- 大小:41.32 KB
- 文档页数:18
GCC使用手册及常用命令行GCC使用手册作者:Clock1.前言GCC编译器的手册(GCC MANUAL)的英文版已经非常全面,并且结构也非常完善了,只是一直都没有中文的版本,我这次阅读了GCC编译器的主要内容,对手册的内容进行了结构性的了解,认为有必要对这次阅读的内容进行整理,为以后的工作做准备。
由于我对这个英文手册的阅读也仅仅是结构性的。
因此有很多地方并没有看,所以这篇文档的内容我也只能写出部分,对于以后需要详细了解的地方,会再往这篇文档中增添内容,需要增添的内容主要是编译器的各种开关。
2. GCC功能介绍GCC编译器完成从C、C++、objective-C等源文件向运行在特定CPU硬件上的目标代码的转换(这是任何一个编译器需要完成的任务)。
GCC能够处理的源文件分为C、C++、Objective-C、汇编语言等。
对于这些源文件,用他们的后缀名进行标示。
GCC能够处理的后缀有:a. *.c *.C (C语言)b. *.cxx *.cc (C++语言)c. *.m (面向对象的C)d. *.i (预处理后的C语言源文件)e. *.ii (预处理后的C++语言源文件)f. *.s *.S (汇编语言)h. *.h (头文件)目标文件可以是:a. *.o 编译连接后的目标文件b. *.a 库文件编译器把编译生成目标代码的任务分为以下4步:a.预处理,把预处理命令扫描处理完毕;b.编译,把预处理后的结果编译成汇编或者目标模块;c.汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;d.连接,把多个目标代码模块连接生成一个大的目标模块;3. GCC开关GCC的运行开关共分为11类,这是类开关从11个方面控制着GCC程序的运行,以达到特定的编译目的。
3.1. 全局开关(OVERALL OPTIONS)全局开关用来控制在“GCC功能介绍”中的GCC的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如拟的目的是为了看某个CPU上的汇编语言怎么写)。
gcc的使⽤简介与命令⾏参数说明(⼀) gcc的基本⽤法(⼆) 警告提⽰功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项(⼀) gcc的基本⽤法使⽤gcc编译器时,必须给出⼀系列必要的调⽤参数和⽂件名称。
不同参数的先后顺序对执⾏结果没有影响,只有在使⽤同类参数时的先后顺序才需要考虑。
如果使⽤了多个 -L 的参数来定义库⽬录,gcc会根据多个 -L 参数的先后顺序来执⾏相应的库⽬录。
因为很多gcc参数都由多个字母组成,所以gcc参数不⽀持单字母的组合,Linux中常被叫短参数(short options),如 -dr 与 -d -r 的含义不⼀样。
gcc编译器的调⽤参数⼤约有100多个,其中多数参数我们可能根本就⽤不到,这⾥只介绍其中最基本、最常⽤的参数。
gcc最基本的⽤法是:gcc [options] [filenames]其中,options就是编译器所需要的参数,filenames给出相关的⽂件名称,最常⽤的有以下参数:-c只编译,不链接成为可执⾏⽂件。
编译器只是由输⼊的 .c 等源代码⽂件⽣成 .o 为后缀的⽬标⽂件,通常⽤于编译不包含主程序的⼦程序⽂件。
-o output_filename确定输出⽂件的名称为output_filename。
同时这个名称不能和源⽂件同名。
如果不给出这个选项,gcc就给出默认的可执⾏⽂件 a.out 。
-g产⽣符号调试⼯具(GNU的 gdb)所必要的符号信息。
想要对源代码进⾏调试,就必须加⼊这个选项。
-O对程序进⾏优化编译、链接。
采⽤这个选项,整个源代码会在编译、链接过程中进⾏优化处理,这样产⽣的可执⾏⽂件的执⾏效率可以提⾼,但是编译、链接的速度就相应地要慢⼀些,⽽且对执⾏⽂件的调试会产⽣⼀定的影响,造成⼀些执⾏效果与对应源⽂件代码不⼀致等⼀些令⼈“困惑”的情况。
因此,⼀般在编译输出软件发⾏版时使⽤此选项。
-O2⽐ -O 更好的优化编译、链接。
gcc命令的参数一、介绍GCC(GNU Compiler Collection)是一套广泛使用的编译器工具集,用于编译C、C++、Objective-C、Fortran等多种程序语言。
GCC命令的参数是指在使用GCC编译器时可以添加的选项和参数,通过这些参数可以对编译过程进行控制和定制,以满足不同的需求。
本文将详细介绍GCC命令的参数及其使用方法。
二、常用参数1. -o <file>指定输出文件的名称。
例如,gcc main.c -o main将编译main.c文件并输出可执行文件main。
2. -c只进行编译,不进行链接。
使用该参数可以将源代码编译为目标文件(.o文件),而不生成可执行文件。
3. -E只进行预处理,生成预处理后的代码。
该参数可用于查看预处理后的代码,以便调试和分析。
4. -g生成调试信息。
使用该参数可以在编译过程中生成调试信息,以便在调试程序时进行源代码级别的调试。
5. -Wall打开所有警告信息。
使用该参数可以让编译器输出所有可能的警告信息,帮助开发者发现潜在的问题。
6. -O优化选项。
GCC提供了多个优化选项,例如-O1、-O2、-O3等,可以根据需求选择不同级别的优化。
7. -I <dir>添加头文件搜索路径。
使用该参数可以告诉编译器在指定的目录中搜索头文件。
添加库文件搜索路径。
使用该参数可以告诉编译器在指定的目录中搜索库文件。
9. -l <library>链接指定的库文件。
使用该参数可以告诉编译器链接指定的库文件,例如-lm表示链接数学库。
10. -D <macro>定义宏。
使用该参数可以在编译过程中定义宏,以控制源代码中的条件编译。
三、高级参数1. -Werror将警告视为错误。
使用该参数可以将编译过程中的警告信息视为错误,编译过程将被中断。
2. -std=<standard>指定所使用的语言标准。
GCC支持多个语言标准,例如-std=c11表示使用C11标准。
gcc编译程序并插桩GCC是一款广泛使用的编译器,可以用于编译各种语言的程序。
在程序中插入代码,称为插桩。
插桩可以帮助开发者调试程序,了解程序的执行流程和性能瓶颈。
本文将介绍如何使用GCC编译程序并进行插桩。
1. 安装GCC编译器GCC编译器通常预装在Linux系统中。
如果您使用的是Windows 系统,可以通过安装MinGW或Cygwin等工具获取GCC编译器。
2. 编写程序编写一个简单的C语言程序:#include <stdio.h>int main() {int a = 1;int b = 2;int c = a + b;printf('c=%d', c);return 0;}3. 编译程序使用GCC编译器编译程序:gcc -g -o program program.c其中,-g选项表示生成调试信息,-o选项指定生成的可执行文件名。
4. 插桩使用GCC编译器的-finstrument-functions选项开启函数插桩功能:gcc -g -finstrument-functions -o program program.c-finstrument-functions选项会在每个函数的入口和出口插入代码。
插入的代码可以是自定义的函数,用于记录函数的调用和返回信息。
5. 运行程序运行程序:./program程序会输出c=3,表示程序正常运行。
同时,插桩代码会输出函数的调用和返回信息,可以用于分析程序的执行流程和性能瓶颈。
以上是使用GCC编译器进行程序插桩的简单步骤。
插桩可以帮助开发者了解程序的执行流程和性能瓶颈,从而进行调试和优化。
GCCT-G直流充电机特性测试仪仪器使用说明书Ver:3.0.00上海冠测电气科技有限公司目录一、概述 (2)1.1 用途 (2)1.2 功能 (2)1.3 特点 (3)1.4 技术指标 (4)1.5 内存使用说明 (4)二、仪器结构 (5)2.1 整体结构 (5)2.2 主要部件 (5)三、连接 (7)3.1 准备 (7)3.2 主机连接 (7)3.2.1 红黑电缆连接 (8)3.2.2 电压测试线连接 (8)3.3 直流电源测试 (8)四、功能操作 (9)4.1 综合测试 (9)4.2 稳压测试 (11)4.3 稳流测试 (13)4.4 纹波测试 (15)4.5 电阻负载 (17)4.6 调压器调压 (17)4.7 数据管理 (18)4.8 系统设置 (19)4.8.1 时间设置 (19)4.8.2 调压器设置 (19)4.8.3 零点校准 (19)4.8.4 增益校准 (19)4.8.5 MOS管校准 (20)4.8.6 参数保存 (20)4.9 版本信息 (20)五、日常维护 (21)六、常见问题解答 (21)一、概述1.1 用途DL/T 724-2000《电力系统用蓄电池直流电源装置运行与维护技术规程》第5.3条中,GB/T19826-2005《电力工程直流电源设备通用技术条件和安全要求》第5.2条中及6.3条中,对充电装置的稳压精度、稳流精度、纹波系数、充电机效率等技术指标及试验方法有明确的规定及技术要求。
试验内容主要是通过调压装置(如变压器)将充电机交流输入电压在额定电压±10%内变化,通过负载调整装置(如放电电阻),使充电机的直流输出电压及输出电流在规定范围内变化(电压调整范围为额定值的90%~115%,电流调整范围为额定值的0~100%),在调整范围内测量电压、电流及纹波值,通过计算,得到充电机的稳压精度、稳流精度及纹波系数、充电机效率等。
充电机特性测试仪是根据国家关于直流电源运行和维护规程的相关要求而派生的一个产品,主要包含稳压精度测量、稳流精度测量、纹波系数测量等功能,同时配备充电机特性测试仪数据分析软件,对上传至计算机的测量数据进行各种分析。
g++参数介绍[介绍]gcc and g++分别是gnu的c & c++编译器gcc/g++在执⾏编译⼯作的时候,总共需要4步1.预处理,⽣成.i的⽂件预处理器cpp2.将预处理后的⽂件不转换成汇编语⾔,⽣成⽂件.s编译器egcs3.有汇编变为⽬标代码(机器代码)⽣成.o的⽂件汇编器as4.连接⽬标代码,⽣成可执⾏程序连接器ld1.总体选项-E只激活预处理,这个不⽣成⽂件,你需要把它重定向到⼀个输出⽂件⾥⾯.例⼦⽤法:gcc -E hello.c > pianoapan.txtgcc -E hello.c | more慢慢看吧,⼀个hello word 也要与处理成800⾏的代码-S只激活预处理和编译,就是指把⽂件编译成为汇编代码。
例⼦⽤法gcc -S hello.c他将⽣成.s的汇编代码,你可以⽤⽂本编辑器察看-c只激活预处理,编译,和汇编,也就是他只把程序做成obj⽂件例⼦⽤法:gcc -c hello.c他将⽣成.o的obj⽂件2.⽬录选项-Idir在你是⽤#include"file"的时候,gcc/g++会先在当前⽬录查找你所制定的头⽂件,如果没有找到,他回到缺省的头⽂件⽬录找,如果使⽤-I制定了⽬录,他回先在你所制定的⽬录查找,然后再按常规的顺序去找.对于#include,gcc/g++会到-I制定的⽬录查找,查找不到,然后将到系统的缺省的头⽂件⽬录查找-include file-i相当于“#include”包含某个代码,简单来说,就是便以某个⽂件,需要另⼀个⽂件的时候,就可以⽤它设定,功能就相当于在代码中使⽤#include例⼦⽤法:gcc hello.c -include /root/pianopan.h-I-就是取消前⼀个参数的功能,所以⼀般在-Idir之后使⽤-idirafter dir在-I的⽬录⾥⾯查找失败,讲到这个⽬录⾥⾯查找.-iprefix prefix-iwithprefix dir⼀般⼀起使⽤,当-I的⽬录查找失败,会到prefix+dir下查找-Ldir制定编译的时候,搜索库的路径。
gcc编译参数在GCC中,编译参数用于指定编译器的行为和选项。
这些参数可以对代码进行优化、生成调试信息、链接不同的库等等。
以下是一些常用的GCC编译参数:1.优化参数:--O0:不进行优化--O1:进行基本优化--O2:进行更多优化--O3:进行最大优化--Os:进行优化以缩小代码尺寸2.调试参数:--g:生成调试信息- -ggdb:生成GDB可用的调试信息- -gdwarf:生成DWARF调试信息3.警告参数:- -Wall:开启所有警告- -Werror:将所有警告视为错误- -Wextra:开启额外的警告- -Wno-unused-parameter:忽略未使用的函数参数的警告4.标准库参数:- -std=c89:使用C89标准- -std=c99:使用C99标准- -std=c11:使用C11标准- -std=c++98:使用C++98标准- -std=c++11:使用C++11标准- -std=c++14:使用C++14标准- -std=c++17:使用C++17标准5.预处理参数:- -D<symbol>=<value>:定义宏- -U<symbol>:取消宏定义- -I<dir>:指定头文件路径6.链接参数:- -L<dir>:指定库文件路径- -l<library>:链接库文件- -shared:生成共享库- -static:生成静态库7.其他参数:--c:只编译,不链接- -o <output>:指定输出文件名- -Wl,<option>:传递选项给链接器- -Wp,<option>:传递选项给预处理器这只是一小部分常用的GCC编译参数,GCC还提供了许多其他参数用于更精细地控制编译过程。
可以通过运行`gcc --help`命令查看GCC支持的所有编译参数。
GCC 选项GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数Linux 命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的:gcc -p -g test.cgcc -pg test.c第一条命令告诉GCC 编译test.c 时为prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里. 第二条命令只告诉GCC 为gprof 命令建立剖析信息.当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫a.out 的文件:gcc test.c你能用-o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫count.c 的C 程序编译为名叫count 的可执行文件, 你将输入下面的命令:gcc -o count count.c注意: 当你使用-o 选项时, -o 后面必须跟一个文件名.-c 只编译并生成目标文件。
--------------------------------------------------------------------------------gcc and g++分别是gnu的c & c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld][参数详解]-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C 语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C 代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。
linuxgcc命令及用法Linux的gcc命令是一款非常强大的编译器,用于将源代码转换为可执行文件。
本文将详细介绍gcc命令及其常用的用法,帮助读者更好地理解和使用这款工具。
一、gcc命令的基本语法结构gcc是GNU Compiler Collection(GNU编译器集合)的简称,因此其命令基本语法结构一般为:shellgcc [选项] [输入文件]其中,选项用于指定编译时的相关参数,输入文件则是需要编译的源文件。
二、gcc命令的常用选项gcc命令提供了许多选项,用于控制编译过程及生成的可执行文件的属性。
下面是一些常用的gcc选项及其作用:1. -o:用于指定输出文件的名称。
例如,使用`-o myprogram`选项将输出文件命名为myprogram。
2. -c:仅进行编译,不进行链接操作。
这个选项常用于编译多个源文件时,先将每个源文件编译为目标文件,再进行链接操作。
3. -g:生成调试信息。
这个选项会在编译时生成与调试器兼容的调试信息,方便开发人员进行程序调试。
4. -Wall:显示所有警告信息。
使用这个选项可以使编译器在编译时输出更多的警告信息,帮助开发人员提前发现潜在的问题。
5. -I:指定头文件的搜索路径。
使用这个选项可以告诉编译器在指定的路径中查找头文件,方便引用外部库、模块等。
6. -L:指定库文件的搜索路径。
与-I选项类似,这个选项用于告诉编译器在指定的路径中查找库文件,用于链接时的库文件搜索。
7. -l:指定要链接的库文件。
使用这个选项可以显式地告诉编译器要链接的库文件,如:-lmath将链接math库文件。
三、gcc命令的应用实例下面通过几个实例来演示gcc命令的具体用法,以帮助读者更好地理解和掌握这款工具。
1. 编译单个源文件并生成可执行文件假设我们有一个名为`hello.c`的源文件,内容如下:c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}我们可以使用以下命令将其编译为可执行文件`hello`:shellgcc -o hello hello.c编译成功后,即可在当前目录下生成名为`hello`的可执行文件。
G++ 中文使用教程简介gcc and g++分别是GNU的c & c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]操作指南[参数详解]-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这简介gcc and g++分别是GNU的c & c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]操作指南[参数详解]-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。
可以使用的参数吗有下面的这些`c', `objective-c', `c-header', `c++', `cpp-output',`assembler', and `assembler-with-cpp'.看到英文,应该可以理解的。
例子用法:gcc -x c hello.pig-x none filename关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型例子用法:gcc -x c hello.pig -x none hello2.c-c只激活预处理,编译,和汇编,也就是他只把程序做成obj文件例子用法:gcc -c hello.c他将生成.o的obj文件-S只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法gcc -S hello.c他将生成.s的汇编代码,你可以用文本编辑器察看-E只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.例子用法:gcc -E hello.c > pianoapan.txtgcc -E hello.c | more慢慢看吧,一个hello word 也要与处理成800行的代码-o制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它,哈哈例子用法gcc -o hello.exe hello.c (哦,windows用习惯了)gcc -o hello.asm -S hello.c-pipe使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题gcc -pipe -o hello.exe hello.c-ansi关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏,-fno-asm此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。
-fno-strict-prototype只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数的个数和类型说明,而不是没有参数.而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型-fthis-is-varialble就是向传统c++看齐,可以使用this当一般变量使用.-fcond-mismatch允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型-funsigned-char-fno-signed-char-fsigned-char-fno-unsigned-char这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前两个参数)或者signed char(后两个参数)-include file包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设定,功能就相当于在代码中使用#include<filename>例子用法:gcc hello.c -include /root/pianopan.h-imacros file将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中-Dmacro相当于C语言中的#define macro-Dmacro=defn相当于C语言中的#define macro=defn-Umacro相当于C语言中的#undef macro-undef取消对任何非标准宏的定义-Idir在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他回先在你所制定的目录查找,然后再按常规的顺序去找.对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找-I-就是取消前一个参数的功能,所以一般在-Idir之后使用-idirafter dir在-I的目录里面查找失败,讲到这个目录里面查找.-iprefix prefix-iwithprefix dir一般一起使用,当-I的目录查找失败,会到prefix+dir下查找-nostdinc使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置-nostdin C++规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创建libg++库使用-C在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的-M生成文件关联的信息。
包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下,很简单。
-MM和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。
-MD和-M相同,但是输出将导入到.d的文件里面-MMD和-MM相同,但是输出将导入到.d的文件里面-Wa,option此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序-Wl.option此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.-llibrary制定编译的时候使用的库例子用法gcc -lcurses hello.c使用ncurses库编译程序-Ldir制定编译的时候,搜索库的路径。
比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。
这个dir就是目录的名称。
-O0-O1-O2-O3编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高-g只是编译器,在编译的时候,产生调试信息。
-gstabs此选项以stabs格式声称调试信息,但是不包括gdb调试信息.-gstabs+此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.-ggdb此选项将尽可能的生成gdb的可以使用的调试信息.-static此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.-share此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.-traditional试图让编译器支持传统的C语言特性GNU 的调试器称为gdb,该程序是一个交互式工具,工作在字符模式。
在X Window 系统中,有一个gdb 的前端图形工具,称为xxgdb。
gdb 是功能强大的调试程序,可完成如下的调试任务:* 设置断点;* 监视程序变量的值;* 程序的单步执行;* 修改变量的值。
在可以使用gdb 调试程序之前,必须使用-g 选项编译源文件。
可在makefile 中如下定义CFLAGS变量:CFLAGS = -g运行gdb 调试程序时通常使用如下的命令:gdb progname在gdb 提示符处键入help,将列出命令的分类,主要的分类有:* aliases:命令别名* breakpoints:断点定义;* data:数据查看;* files:指定并查看文件;* internals:维护命令;* running:程序执行;* stack:调用栈查看;* statu:状态查看;* tracepoints:跟踪程序执行。
键入help 后跟命令的分类名,可获得该类命令的详细清单。
#DENO#gdb 的常用命令表1-4 常用的gdb 命令命令解释break NUM 在指定的行上设置断点。
bt 显示所有的调用栈帧。
该命令可用来显示函数的调用顺序。
clear 删除设置在特定源文件、特定行上的断点。
其用法为:clear FILENAME:NUM。
continue 继续执行正在调试的程序。
该命令用在程序由于处理信号或断点而导致停止运行时。
display EXPR 每次程序停止后显示表达式的值。
表达式由程序定义的变量组成。
file FILE 装载指定的可执行文件进行调试。
help NAME 显示指定命令的帮助信息。
info break 显示当前断点清单,包括到达断点处的次数等。
info files 显示被调试文件的详细信息。
info func 显示所有的函数名称。
info local 显示当函数中的局部变量信息。
info prog 显示被调试程序的执行状态。
info var 显示所有的全局和静态变量名称。
kill 终止正被调试的程序。
list 显示源代码段。
make 在不退出gdb 的情况下运行make 工具。
next 在不单步执行进入其他函数的情况下,向前执行一行源代码。
print EXPR 显示表达式EXPR 的值。
1.8.5 gdb 使用范例-----------------清单一个有错误的 C 源程序bugging.c-----------------#include#includestatic char buff [256];static char* string;int main (){printf ("Please input a string: ");gets (string);printf ("\nYour string is: %s\n", string);}-----------------上面这个程序非常简单,其目的是接受用户的输入,然后将用户的输入打印出来。