gcc程序编译和gdb程序调试的基本选项

简介: GCC程序编译 基本格式:gcc [options] [filename] -o 输出可执行文件,如果不给出这个选项,则默认输出a.out可执行文件;如:gcc hello.c -o hello -c 只编译,不连接为可执行文件,生成为以.o为后缀名的目标文件;如:gcc -c hello.c -S 只激活预处理和编译,就是指把文件编 译成为汇编代码。

GCC程序编译

基本格式:gcc [options] [filename]
-o 输出可执行文件,如果不给出这个选项,则默认输出a.out可执行文件;如:gcc hello.c -o hello
-c 只编译,不连接为可执行文件,生成为以.o为后缀名的目标文件;如:gcc -c hello.c
-S  只激活预处理和编译,就是指把文件编 译成为汇编代码。如:gcc -S hello.c
   -O 优化编译、连接;-O2对-O再进行优化编译、连接;
   -g 编译时,对函数库产生符号信息;(注:当在gdb中调试时,这个必选);
   -D 定义宏命令;相当于:#denfine
   -static 静态链接库文件;一般默认的为动态;
   -Wall 生成警告信息;
   -w不生成任何警告信息;

GDB程序调试
基本步骤:
1、启动调试;如:gdb filename
2、在指定地方停住程序;
3、程序停住时,可检查程序的状态;
4、退出;
注:如调试,必须在gcc中的选项中加入-g
list(l):查看程序;
break(b):设置断点;可以是函数名、行号、文件名:行号、行号 if 条件;
info break:查看断点;
delete:删除断点,如:delete 断点编号;
run(r):运行;
next(n):单步执行,不进入子函数;
step(s):单步执行,进入到子函数中;
continue(c):继续;
print(p):查看变量;
finish:运行程序,到当前函数结束;
watch:对指定变量进行监控;
quit(q):退出;
相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
3月前
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
62 10
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
3月前
|
NoSQL
技术分享:如何使用GDB调试不带调试信息的可执行程序
【8月更文挑战第27天】在软件开发和调试过程中,我们有时会遇到需要调试没有调试信息的可执行程序的情况。这可能是由于程序在编译时没有加入调试信息,或者调试信息被剥离了。然而,即使面对这样的挑战,GDB(GNU Debugger)仍然提供了一些方法和技术来帮助我们进行调试。以下将详细介绍如何使用GDB调试不带调试信息的可执行程序。
99 0
|
5月前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
42 1
|
5月前
|
NoSQL 编译器 Linux
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
83 0
|
5月前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
31 0
|
5月前
|
NoSQL Linux C++
Linux C/C++ gdb调试正在运行的程序
Linux C/C++ gdb调试正在运行的程序
|
6月前
|
NoSQL 搜索推荐 openCL
【C/C++ 调试 GDB指南 】gdb调试基本操作
【C/C++ 调试 GDB指南 】gdb调试基本操作
378 2
|
6月前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
5月前
|
NoSQL Linux C++
Linux C/C++ gdb调试core文件
Linux C/C++ gdb调试core文件