先安装gcc :
sudo apt-get install gcc
写一个C++的程序,然后用下面的命令编译:
g++ test.cpp -g
当然你要找到你写的那个CPP文件的路径。编译后会产生一个文件:a.out,这就是编译后的结果。在window中,这个文件是a.exe。这个文件名也可以自己手动指定,如:
g++ test.cpp -g -o test.out
之后,我们换用另一个命令:gdb来运行调试:
gdb a.out
这就进入了gdb的命令之中
在(gdb)后面可以输入几个参数来进行运行和调试:
(gdb) L
当然,这个L可以写成小写
这个命令把这个程序的代码打印出来,如果太长,比如超过10行,那再输入一次这个参数,就会再打10行……
(gdb)b 11
b是break的缩写,后面的11 表示在第11行设一个断点:
设置好断点后,我们用r来run运行:
(gdb)r
运行中遇到断点就会停下来,用c命令来continue继续运行
(gdb)c
同样的,运行到下一个断点时就会再停下来,如果想要一步一步执行,就用n或s(分别表示next和step)
(gdb)n //这个命令在有函数调用时,把它作为一个整体,作为一步
(gdb)s //这个命令在有函数调用时,进入函数内部,一步一步执行
u这个参数则表示运行到某一行停下来,它是until的缩写
(gdb)u
p这个参数也是很重要的一个参数,它用来查看变量的当前值
(gdb)p a
(gdb)disp a > b
如果想查看当前所有的局部变量呢?
这里介绍一个参数,i,这是information的缩写
(gdb)i lo //查看本地变量,local
同样的道理,如果想查看当前的所有断点的信息:
(gdb)i b
disp参数也很实用,把一个表达式设置为display,当程序每次停下时,都会显示其值。
(gdb)disp a > b
到这里,可能你会想到一个指令:
(gdb)i disp
没错,就就是用来显示所有display的表达式
最后,再介绍一些gdb的高级功能,在调试的时候很有用:
1、
(gdb)ig 1 6
ig是ignore的缩写,这个命令表示,对于编号为1的断点,之后的6次到达后才停下来。
其中断点的编号 如果不清楚,可以用(gdb)i b来查
2、
(gdb)cond 1 b > 15
cond是condition的缩写,意思就是在运行到条件满足时,才停下来。上面这句表示:编号为1的断点 在运行到b的值大于15时才停下来,前几次经过这个断点都不会停。
3、
(gdb)wa a
这个命令表示在变量a的值被改变时就会停下来。wa是watch的缩写
类似的命令还有:(gdb)aw a 表示a在被读写时都会停下来,而(gdb)rw a 表示变量在被读时才会停下来。
当然gdb还有很多强大的功能,读者有兴趣可以自己去网上找找资料,好好研究研究,gdb对程序的调试功能比很多集成的IDE还强大很多
- 大小: 45 KB
- 大小: 24.3 KB
- 大小: 2.1 KB
- 大小: 2.6 KB
- 大小: 9.9 KB
分享到:
相关推荐
本篇文章将详细探讨这两个方面,并以`pstack`工具为例,介绍如何在Linux环境下进行程序的编译与调试。 首先,让我们来理解一下编译过程。在Linux下,最常用的编译器是GCC(GNU Compiler Collection)。当编写好C或...
通过本文介绍的方法,可以显著提高在Linux环境下使用Eclipse进行C++项目开发与调试的效率。相比传统方式,使用Eclipse不仅可以简化项目的构建流程,还能提供更加强大且直观的调试体验。对于从事C++开发的专业人士而...
针对Linux平台,Eclipse IDE for C/C++充分利用了Linux系统的特性,如利用Shell命令行工具进行系统级操作,以及与Linux下的各种库和框架的兼容性。开发者可以直接在IDE内调用系统终端,运行shell命令,这对于处理...
在Linux环境下,对C/C++程序进行编译和调试是软件开发中的基本操作。本文将详细介绍如何使用gcc/g++编译器,理解makefile的工作原理,以及如何利用gdb进行程序调试。 ### 1. gcc/g++编译器 gcc/g++是Linux下广泛...
- 使用`gcc`或`g++`命令来编译和链接C/C++程序,例如:`gcc -o program program.c`。 3. **Makefile管理项目** - 大型项目中,使用Makefile可以自动化编译过程,管理依赖关系,提高效率。 - Makefile包含规则...
通过配合使用 VSCode 的远程开发插件,可以在 Windows 操作系统上便捷地进行 Linux(例如 ConteOS)环境下的 C++ 开发和调试。本文将详细讲解如何配置这一工作流程。 首先,我们需要在 Windows 上完成两个主要的...
一、Linux编译 1. `gcc`编译器:`gcc`(GNU Compiler Collection)是Linux中最常用的C/C++编译器,它能将源代码转化为可执行文件。基本的编译流程包括预处理、编译、汇编和链接四个阶段。使用`gcc`的基本命令格式...
对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...
传统在 Linux 下开发程序,是在文字模式下,利用 vi 等文字编辑器撰写 C/C++ 程序存盘后,在 Command line 下使用 gcc 编译,若要 debug,则使用 gdb。这种开发方式生产力并不高,若只是开发学习用的小程序则影响...
在Linux环境下,理解这些技术尤其重要,因为Linux提供了丰富的开源工具和库,开发者需要掌握如何有效地利用它们。斯特瓦诺维奇的书可能会提供实践指导,帮助读者理解和解决实际开发中遇到的问题,比如优化程序性能、...
### Linux程序编译调试知识点详解 #### 一、GCC(GNU Compiler Collection)概述 GCC,全称为GNU Compiler Collection,是一个广泛使用的开源编译器套件,支持多种编程语言,包括但不限于C、C++、Objective-C、...
1. **编译单个源文件**:创建一个简单的C程序,例如经典的"Hello World"程序,然后使用`gcc`命令编译。例如: ```bash gcc -o hello hello.c ``` 这会生成名为`hello`的可执行文件。默认情况下,不指定输出...
在Windows下,如果你用Visual Studio进行开发,C/C++的编译器一般采用微软提供的MSBuild;在Linux下C/C++的编译器大多采用gcc/g++。既然要在Linux下进行C++开发,很有必要了解一下g++编译器的一些基本知识。 假设我...
使用`proc`命令可以预编译包含PL/SQL的源代码文件,生成C/C++源代码。 4. **Pro*C语法**: 在Pro*C程序中,使用`EXEC SQL`语句来执行SQL和PL/SQL。例如,`EXEC SQL SELECT * FROM table;`用于查询表中的所有记录。...
在Linux上开发C/C++程序,需要安装必要的开发工具,如GCC/G++编译器、Make工具、GDB调试器等。同时,理解环境变量、编译链接过程、动态库静态库的使用也是编程环境搭建的关键。此外,学会使用版本控制系统如Git进行...
### Linux C/C++ GDB调试手册知识点概览 #### GDB概述 - **定义与功能**:GDB(GNU Debugger)是由GNU项目开发的一款强大的调试工具,主要用于在UNIX及类UNIX系统(如Linux)上进行程序调试。它支持C、C++等多种...
vs code配置C/C++调试器和编译器json文件
GCC不仅支持C语言,还支持C++等其他语言,是Linux环境下首选的编译工具。 ##### GCC的安装与使用 在大多数Linux发行版中,GCC已经预先安装或者可以通过包管理器轻松获取。通过终端命令`gcc --version`可以检查GCC...