首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用gcc编译gdb调试

使用gcc编译gdb调试

作者头像
用户1154259
发布于 2018-01-17 11:24:14
发布于 2018-01-17 11:24:14
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

gcc

在linux系统中,默认是没有安装gcc编译器的,可以通过命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rpm -q | grep gcc

 来查看。安装命令为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install gcc

安装后,编写一个.c结尾的文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc test.c

 就会默认输出一个a.out的输出文件,这个输出文件就是可执行文件。

如果加上-o选项,则可以自定目标文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -o test test.c  

test就是它的可执行文件。

一般都默认加上-Wall 选项,可以自动提示一些出错警告的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -Wall -o test test.c

gbd

以上就是常用的gcc相关知识了。下面就是它的调试,调试通常使用gdb。在编译的时候需要加上选项-ggdb3选项

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -ggdb3 -Wall -o test test.c

这样在没有出错的情况下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gdb test

就进入调试窗口

输入下面命令可以进行如下的操作:

break 设置断点

break 21 在第21行设置断点

break main 在main函数处设置断点

break test 在函数test处设置断点

step /  s  下一步,直接执行下一条程序

continue / cont 下一段,如果遇到函数,不会进入函数,逐过程,有点类似VS里面的F10

run 运行

finish 结束调试

tbreak设置临时断点

print / p 显示某个变量的值

p *array@len 输出数组

p i 输出i的值

enable 恢复失效的断点

disable 使断点失效

clear 清除断点

backtrace / bt 查看堆栈信息

相关的输出格式

x 十六进制格式

d 十进制格式

u 十六进制无符号

o 八进制显示

t 二进制显示

a 十六进制显示

c 字符格式显示

f 浮点数格式显示

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-04-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
Linux 是当今计算机领域最重要的操作系统之一,其强大的命令行工具和丰富的生态系统为开发者提供了极大的灵活性和效率。然而,对于新手和部分用户而言,如何使用这些工具高效管理软件、编译代码、自动化构建和调试程序仍然是一项挑战。这篇文章旨在为读者提供一站式的 Linux 工具指南,从软件包管理 (apt) 到编译器 (gcc/g++)、自动化构建工具 (make),再到调试器 (gdb),我们将以清晰、系统化的方式为您逐步解析这些工具的功能和使用方法。无论您是初学者还是有经验的开发者,这篇文章都能为您的 Linux 技能提升提供帮助。
suye
2025/01/11
4230
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
GDB调试学习
简介 GDB是GCC的调试工具。其功能如下: 启动程序,使程序按自定义形式运行; 使程序停止指定断点位置; 程序停止后,检查程序执行中的相应情况; 动态改变程序执行环境。 gdb调试 能进行GDB调试,一般在编译过程中,需使用-g参数。如果不使用-g参数,则在gdb调试过程中,将不能得到程序的函数名、变量名等信息,而只能看见运行时内存地址。举例如下: 启动gdb调试的方法有以下三种: 常用的调试有以下几种: b <行号> // 停在程序的指定一行 b <函数名称> // 停在程序的某个函数处 b *<函数
云深无际
2020/10/23
1.5K0
GDB调试学习
深入浅出GDB调试器
GDB全称GNU symbolic debugger,它是诞生于GNU开源组织的(同时诞生的还有 GCC、Emacs 等)UNIX及UNIX-like下的调试工具,是Linux下最常用的程序调试器,GDB 支持调试多种编程语言编写的程序,包括C、C++、Go、Objective-C、OpenCL、Ada 等。但是在实际应用中,GDB 更常用来调试C和C++程序。虽然说在Linux系统下我们可以借助诸多集成开发工具来完成程序的编写和调试,但实际上,调试C/C++程序一定是直接或者间接使用GDB完成的。所以说GDB调试几乎可以说是Linux程序员必备的基本技能。本文将手把手教你使用GDB调试程序,并带你深入了解什么是GDB调试器。
mindtechnist
2024/08/08
8410
深入浅出GDB调试器
C编译: 使用gdb调试
gdb是the GNU Debugger的简称。它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug。 在gdb中,你可以通过设置断点(break point)来控制程序运行的进度,并查看断点时的变量和函数调用状况,从而发现可能的问题。在许多IDE中,gdb拥有图形化界面。 这里主要介绍gdb的命令行使用,并以C程序为例。测试使用的计算机是Mac OS系统。 启动gdb 下面的有两个C文件。(并没有bug。我们使用
Vamei
2018/01/18
1.3K0
C编译: 使用gdb调试
GDB调试入门,看这篇就够了
GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c++, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。本文以C程序为例,介绍GDB启动调试的多种方式。
编程珠玑
2019/07/23
7.9K0
GDB调试入门,看这篇就够了
gcc命令大全
使用gcc编译器时,必须给出一系列必要的调用参数和文件名称。不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑。如果使用了多个 -L 的参数来定义库目录,gcc会根据多个 -L 参数的先后顺序来执行相应的库目录。
全栈程序员站长
2022/11/04
1.9K0
gdb调式程序
GDB是Linux/Unix下一个GNU调试程序,是用来调试C与C++程序的强力调试器。能够让用户在程序运行时观察程序的内部结构和内存的使用情况。
黄规速
2022/04/14
5800
gdb调式程序
补充实验:GDB调试
启动GDB后,某些行前面会显示(gdb)提示符,所以gdb指令都输在(gdb)提示符的后面。
esse LL
2023/03/28
6030
掌握GDB调试工具,轻松排除bug
目前release的最新版本为8.0,GDB可以运行在Linux 和Windows 操作系统上。
嵌入式Linux内核
2023/06/28
9590
掌握GDB调试工具,轻松排除bug
深入浅出GCC编译器
GCC原名为GNU C语言编译器(GNU C Compiler),只能对C语言进行编译等处理。后来随着其功能的扩展,可以支持更多编程语言,如C++、Java、Fortran、Pascal、Objective -C、Ada、Go以及各类处理器架构上的汇编语言等。所以,现在我们所说的GCC是指GNU编译器套件(GNU Compiler Collection)。本文将带你迈入GCC的大门,了解一个C源文件是如何在GCC编译工具链的加工下成为一个可执行性文件的,并详细讲解GCC编译参数以及可能会用到的其他知识。
mindtechnist
2024/08/08
9300
深入浅出GCC编译器
Linux系统下gdb调试(一)
这段时间逛了一下招聘网站上,对于嵌入式要求里面有要求会gdb调试,而且再加上昨天在交流群里面,刚好有网友问gdb怎么调试,这让我学gdb调试的欲望越来越强烈,这不,应网友的要求,今天就来给大家分享自己总结的实战调试方法(这里可能暂时写的比较基础一点,不过还请各位读者原谅,毕竟自身也是刚接触这个还没一个小时呢,同时也参考网上的博客和b站视频的学习,不过这里感觉还是老外的gdb视频讲解的比较好,hh)。
用户6280468
2022/03/18
6.3K0
Linux系统下gdb调试(一)
Linux基础——Linux开发工具(中)_gcc/g++
前言:在上一篇我们简单介绍了yum,vim的一些常用的指令和模式,现在让我们来进一步了解其他的Linux环境基础开发工具gcc/g++,gdb。
Eternity._
2024/06/14
2790
Linux基础——Linux开发工具(中)_gcc/g++
GDB调试
约定:对gdb的命令,如果有缩写形式,会在第一次出现的时候小括号内给出缩写,比如运行命令写成run(r);本文中尖括号< >用来表达一类实体,比如<program>表示这个地方可以放置程序;中括号[]表示括号中的内容是可写可不写,比如[=<value>],表示“=<value>”可以有也可以没有(<value>本身又是一类实体);“|”表示或的关系。
玖柒的小窝
2021/12/14
2.4K0
GDB调试
用图文带你彻底弄懂GDB调试原理
这篇文章来聊聊大名鼎鼎的GDB,它的豪门背景咱就不提了,和它的兄弟GCC一样是含着金钥匙出生的,在GNU的家族中的地位不可撼动。相信每位嵌入式开发工程师都使用过gdb来调试程序,如果你说没有用过,那只能说明你的开发经历还不够坎坷,还需要继续被 BUG吊打。
IOT物联网小镇
2021/05/13
6.3K0
用图文带你彻底弄懂GDB调试原理
C/C++生态工具链——GDB调试器
GDB全称是GNU symbolic debugger,是Linux平台下最常用的一款调试器。GDB主要用于C/C++开发场景,同时也支持Go、Ada等语言的调试。GDB主要以命令行的形式在shell终端使用,它的一部分底层逻辑借助于ptrace进行实现。GDB的功能很强大,开发者可以在执行时修改函数变量的值以及程序的执行顺序,还可以在程序执行期间查看函数的调用过程、堆栈数据等,也可以利用GDB对代码进行断点调试。
Coder-ZZ
2023/02/23
1.8K0
C/C++生态工具链——GDB调试器
【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile
我们在Windows中有很多的编译环境,大家应该都很熟悉,但是在Linux中,我们怎么写代码呢?
用户10925563
2024/06/04
1850
【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile
Linux下gdb调试方法
GDB(GNU Debugger)是Linux环境下一款强大的命令行调试工具,由GNU项目提供,用于帮助开发者诊断和修复程序中的错误。它支持多种编程语言,包括C、C++、Fortran、Pascal以及其他使用GNU编译器集合(GCC)编译的语言。GDB提供了丰富的功能,如设置断点、单步执行代码、查看和修改变量值、查看调用堆栈、分析内存、执行程序直到特定条件满足等,这些都是软件开发和调试过程中不可或缺的工具。
DS小龙哥
2025/05/27
2910
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
格式: gcc [选项] 要编译的文件 [选项] [目标文件],gcc / g++安装: sudo yum install -y gcc-c++。安装后的编译器默认的版本是较低的,我们可以使用选项-std=c99(即使用c99标准),-std=c++11(即使用c++11的标准)来进行版本提升。使用-o选项,可以将编译生成的可执行重命名。最后使用./可执行,来运行程序。如下:
用户11029269
2024/03/19
5470
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
GDB实现原理和使用范例
这篇文章为了让你深入了解gdb的工作原理,以及如何在linux环境下使用强大的gdb调试程序功能。
mariolu
2018/11/18
5.4K0
一文搞懂 | C语言编程必备技能—GDB调试
GDB(GNU Debugger) 是一款开源调试工具,支持多种编程语言(如 C、C++、Python 等),主要用于在程序运行时检查其状态,包括变量值、内存布局、调用堆栈等。它可以帮助开发者定位逻辑错误、内存泄漏、段错误等问题。
C语言中文社区
2025/06/24
4170
一文搞懂 | C语言编程必备技能—GDB调试
相关推荐
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验