首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux学习_005_Linux使用命令安装gcc、g++、gdb

注意:本博文在CentOS7.5版本上进行了测试,不同版本可能会出现差异。 以下均为root用户下操作,安装时请确保你Linux可以上网。...Linux使用命令安装gcc、g++、gdb 使用gcc用来编译C程序 使用g++用来编译C++程序 使用gdb来调试程序 1、gcc安装 现在下载CentOS版本几乎都会自带gcc和vim,所以我们需要只是...检查你Linux是否有gcc: [root@itheima ~]# which gcc /usr/bin/which: no gcc in (/usr/local/sbin:/usr/local/bin...++ 安装完成后,再次检查,就会出现该命令路径: [root@itheima ~]# which g++           /usr/bin/g++ 3、gdb安装 先检查是否有gdb: [root...root/bin) 说明没有,使用以下命令安装g++: root用户:yum install gdb 普通用户:sudo yum install gdb 安装完成后,再次检查,就会出现该命令路径: [

4.5K31
您找到你想要的搜索结果了吗?
是的
没有找到

linuxgdb常用调试命令

gdb调试程序时,常常很困惑一些命令使用,要么是不知道这个命令,要么忘了命令使用方法。...起始位置 watch buf buf值一旦改变,会触发watchpoint 奇淫技巧: cat ~/.gbinit gdb会从这个文件读取配置 cat ~/.gdb_history 呵呵,...对于gdb时想要查看长字符串老是显示不全,怎么半呢,gdb参看数组字符串时默认只是显示部分数据,通过这个命令可以修改: set print elements 0 默认这里设置是200,设置为0表示没有限制...还有其它一些set命令可以试试: set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数参数地址。...系统默认为打开 set print object 在C++中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用规则显示输出,如果关闭这个选项的话,GDB

2.9K20

linuxClang和gcc区别

Gcc 优势: · 一些软件用 clang 编译会出现莫名其妙错误,但是用 gcc 编译可以通过 。...· GCC 在 5.0 之前一直都在准备用 C++ 实现模块化,期待 GCC 5.0 会有所突破,补上无法模块化短板。 ---- 编译速度更快、编译产出更小、出错提示更友好。...尤其是在比较极端情况。 两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用是Boost.Spirit——一个重度依赖C++模版元编程框架。...+1/3或1/4 相较于g++,编译错误可读性有所飞跃,至少不会出现编译错误过长被截断问题了 当时最大缺点是clang编译出可执行文件无法用gdb调试,需要用调试器时候还得用g++再编译一遍。...不过这个问题后来解决了,我不知道是clang支持了gdb还是gdb支持了clang。至少我当前在Ubuntu用clang 3.0编译出二进制文件已经可以顺利用gdb调试了。

5.2K10

Linux系统gdb调试(一)

这段时间逛了一招聘网站上,对于嵌入式要求里面有要求会gdb调试,而且再加上昨天在交流群里面,刚好有网友问gdb怎么调试,这让我学gdb调试欲望越来越强烈,这不,应网友要求,今天就来给大家分享自己总结实战调试方法...Linux GDB(GNU Debugger)是-一个用来调试C、C++程序功能强大调试器,它能够在程序运行过程中观察程序内部结构和内存使用情况。...3、gdb命令+实战演示: gdb使用非常简单,只要在Linux命令提示符输入gdb命令,系统便会启动gdb。...另外,为了使gdb正常工作,必须使程序在编译时候包含调试信息,这需要在gcc编译时加上-g或者-ggdb选项。调试信息包含了程序中每个变量类型和在可执行文件中地址映射以及源代码行号。...下图是在Linux启动gdb简单演示,具体会在下面的实战来演示: root@ubuntu-virtual-machine:/home/ubuntu# gdb GNU gdb (Ubuntu 8.1

3.8K10

LinuxGDB调试指令总结

摘要 之前写C++一些程序都是在windows,直接使用VS2017傻瓜式编译器,最近尝试摸索在linux进行C++程序编译,有了一些成果!特此总结!...主要分为两种编译方式:1.g++/gcc编译,2.cmake编译,注意cmake编译需要编写CMakeLists.txt文件。...代码调试器:避免不了,程序会出现bug,但是使用命令行编译出错后是没有调试信息(g++编译时),因此我们需要使用gdb对程序进行调试。 ?...call 函数(参数):调用程序中可见函数,并传递“参数”,如:call gdb_test(55) quit(简写q) : 退出gdb 02 设置断点: break n (简写b n):在第n行处设置断点...如:display a watch 表达式:设置一个监视点,一旦被监视“表达式”值改变,gdb将强行终止正在被调试程序。

4.5K20

Linuxgdb用法简单介绍

/n", result );     24        printf("result[1-250] = %d /n", func(250) );     25 } 编译生成执行文件: gcc...This GDB was configured as "i386-suse-linux"......(gdb) quit ——————退出gdb 好了,有了以上感性认识,还是让我们来系统认识一gdb吧。 使用GDB 一般来说GDB主要调试是C/C++程序。...使用编译器(cc/gcc/g++)-g参数可以做到这一点,如: $ cc –g hello.c –o hello $ g++ -g hello.cpp –o hello 如果没有-g,你将看不见程序函数名...Gdb中,输入命令时,可以不用打全命令,只用打命令前几个字符就可以了,当然,命令前几个字符要标志着一个唯一命令,在linux,可以敲击两次TAB键来补齐命令全称,如果有重复gdb会把其列出来

1.6K30

GCC调试工具GDB常用指令

使用delete+断点编号指令删除断点 可简写为d 使用 clear+断点行号指令清除断点 使用 disable/enable + 断点编号 指令冻结或启动断点 使用info break指令查看断点情况...使用 tbreak 指令设置临时断点 使用 awatch/watch + 变量 设置变量读写观察点 使用continue指令运行到断点处 可简写为c 使用print指令打印变量值 可简写为p 使用x...指令打印指定内存地址数据 使用run指令运行整个程序 可简写为r 使用 call 指令直接运行某个函数 使用display 指令设置需要跟踪变量 使用 info display 显示当前所有跟踪情况...使用undisplay+编号 指令取消对变量跟踪 使用 set+ 变量 指令改变变量值 使用 set 指令设置运行时参数 使用 show 指令查看运行时参数 使用 finish 指令函数结束 使用

60630

Linux使用gdb调试core文件

core意指core memory,用线圈做内存。如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况,人们还是把记忆体叫作 core 。...一般情况,无需修改,按照默认方式即可。 4.gdb调试core文件步骤 使用gdb调试core文件来查找程序中出现段错误位置时,要注意是可执行程序在编译时候需要加上-g编译命令选项。...gdb调试core文件步骤常见有如下几种,推荐第一种。 具体步骤一: (1)启动gdb,进入core文件,命令格式:gdb [exec file] [core file]。...用法示例:gdb -core test.core。 (2)其它步骤同步骤二。 5.其它查找段错误位置方法 可以使用gdb进行单步调试,来查找段错误出错位置。...gdb用例具体见: Linuxgdb用法简单介绍。

38.1K42

LinuxGDB调试器常用指令

本文是该系列第三篇文章,你可以通过以下链接查看过去内容 1. Linux中编译C++代码g++工具,以及g++常用操作指令 2. LinuxC++命令行编译示例 1....概述 GDB(GNU Debugger) 是一个用来调试 C/C++ 程序功能调试器,是Linux系统开发C/C++最常用调试器 程序员可以使用GDB来跟踪程序中错误,从而减少程序员工作量 Linux...开发C/C++一定要熟悉GDB VScode是通过调用GDB调试器来实现工作 Windows中,常用集成开发环境,如VS,VC等已经内嵌了相应调试器 GDB主要功能: 设置断点(断点可以是条件表达式...常用调试命令参数 调试开始:执行gdb [exefilename],进入gdb调试程序,其中exfilename为要调试执行文件名,以下命令后括号内为命令简化使用,比如 run(r),直接输入命令...gdb 进行调试,例如:gcc -g main.cpp -o main 回车键:重复上一条命令 > 本文来自自己学习笔记

1.7K20

浅谈Linux环境gcc优化级别

代码优化可以说是一个非常复杂而又非常重要问题,以笔者多年linux c开发经验来说优化通常分为两个方面,一是人为优化,也就是基于编程经验采用更简易数据结构函数等来降低编译器负担,二是采用系统自带优化模式...,也就是gcc – o系列,下面我将简述一各级优化过程以及实现。...gcc – o1 首先o1上面还有一个o0,那个是不提供任何优化,项目中几乎不会使用,而o1使用就非常广泛了,o1是最基本优化,主要对代码分支,表达式,常量来进行优化,编译器会在较短时间将代码变得更加短小...gcc – o2 这个优化级别是o1进阶,在上一级基础上会进行更严格细分,最重要是加入了寄存器使用。...总结 以上就是本文关于浅谈Linux环境gcc优化级别的全部内容,希望对大家有所帮助。欢迎大家继续参阅本站其他相关专题,感谢朋友们对ZaLou.Cn网站支持。

1.8K20

深入探索GDBLinux强大调试神器

目录 一、GDB简介:源码级调试基石 二、GDB基础操作:从入门到熟练 启动与基本命令 三、GDB进阶功能:解锁更深层次调试能力 1. 回溯追踪:洞察调用栈 2....配合IDE使用 ✨一、GDB简介:源码级调试基石 GDB,全称GNU Debugger,是一款开源、跨平台源码级调试工具,尤其在Linux生态系统中占据着举足轻重地位。...GDB支持包括C、C++、Fortran、Ada、Objective-C、Go、D等多种编程语言,能够与GCC、Clang、LLVM等一系列主流编译器无缝集成。...首先,编译程序并生成调试信息: gcc -g -o null_pointer null_pointer.c 然后启动GDB,设置断点并运行: gdb ....当观察变量被修改时,GDB会自动暂停程序。这对于追踪难以复现偶发问题尤为有用: (gdb) watch variable_name 4.

56610

linux使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux最常用C语言编译器,是GNU项目中符合ANSI C标准编译系统,能够编译用C、C++和Object C等语言编写程序。 ...在linux系统中,常见使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c...vi hello.c                          //编辑hello.c 内容如下: gcc -o hello  hello.c  a.c               //gcc

7.4K90

Linux环境通过GDB调试C项目实战

通过GDB调试找到程序bug 请查看位于https://github.com/xmu-Linux101/Linux101/tree/201720182/experiments/gcc-5-gdb代码...g 默认情况gcc在编译时不会建个调试符号插入到生成二进制代码中,如果需要生成调试符号信息,可以使用gcc -g选项,一般不加调试选项,否则会使代码增大。...gdb调试器功能gdb 调试器功能gdb调试器功能 ​ 1.设置断点 ​ 2.单步执行程序,便于调试 ​ 3.查看程序中变量值变化 ​ 4.动态改变程序执行环境 ​ 5.分析崩溃程序产生...core文件 以上这些就是这次实验前置知识,需要我们采用gdb调试器来找出一些程序bug 首先看一这个程序目录结构: ?...,进行测试编写代码功能是否正常执行 在找这个项目的bug之前我们必须确认一Makefile内容是否有逻辑错误或者语法错误,这样才能保证我们后期调试没有问题 输入vi Makefile,我们看到:

5.2K50

linux使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux最常用C语言编译器,是GNU项目中符合ANSI C标准编译系统,能够编译用C、C++和Object C等语言编写程序。 ...在linux系统中,常见使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.bin文件,“-o”:表示生成可执行文件) gcc -c out in1 in2 // gcc编译不链接(对in1文件和in2文件文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c

6.1K70

linux gdb调试

以前在IDE调试的话,就很容易设置断点,查看参数值,到了 linux 就变得比较麻烦了。 目前觉得比较重要就是: 1.设置断点: gdb命令 break,也可以用 b 。...方法 b [函数名|行号],需要注意是,如果你要设置在类成员函数中设置断点,要加上类名,比如 b TcpClient::onMessage,再接着,如果用 namespace 要加上 namespace...3.一直显示 gdb命令 display,方法 display para。...取消的话 undisplay 编号 4.列出信息 gdb命令 info,info break, info display 5.调试 单步调试 n,进入函数单步调试 s,跳到下一个断点 c 6.读取文件...gdb命令 file , file path. 7.执行 gdb 命令 run, run args. 8.显示代码 gdb 命令 list,list [行号] 之后可以按 Enter 继续显示

4.6K32
领券