`
lingyibin
  • 浏览: 196251 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

linux下用命令编译/调试C++程序

阅读更多

先安装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
2
1
分享到:
评论

相关推荐

    linux下程序的编译及调试

    本篇文章将详细探讨这两个方面,并以`pstack`工具为例,介绍如何在Linux环境下进行程序的编译与调试。 首先,让我们来理解一下编译过程。在Linux下,最常用的编译器是GCC(GNU Compiler Collection)。当编写好C或...

    Linux Eclipse C++项目编译与调试.docx

    通过本文介绍的方法,可以显著提高在Linux环境下使用Eclipse进行C++项目开发与调试的效率。相比传统方式,使用Eclipse不仅可以简化项目的构建流程,还能提供更加强大且直观的调试体验。对于从事C++开发的专业人士而...

    Eclipse IDE for C/C++ Linux64位

    针对Linux平台,Eclipse IDE for C/C++充分利用了Linux系统的特性,如利用Shell命令行工具进行系统级操作,以及与Linux下的各种库和框架的兼容性。开发者可以直接在IDE内调用系统终端,运行shell命令,这对于处理...

    LINUX下编译与调试

    在Linux环境下,对C/C++程序进行编译和调试是软件开发中的基本操作。本文将详细介绍如何使用gcc/g++编译器,理解makefile的工作原理,以及如何利用gdb进行程序调试。 ### 1. gcc/g++编译器 gcc/g++是Linux下广泛...

    Linux环境下的C/C++小项目

    - 使用`gcc`或`g++`命令来编译和链接C/C++程序,例如:`gcc -o program program.c`。 3. **Makefile管理项目** - 大型项目中,使用Makefile可以自动化编译过程,管理依赖关系,提高效率。 - Makefile包含规则...

    Windows使用VSCode远程Linux(ConteOS)开发调试C++(超详细) .docx

    通过配合使用 VSCode 的远程开发插件,可以在 Windows 操作系统上便捷地进行 Linux(例如 ConteOS)环境下的 C++ 开发和调试。本文将详细讲解如何配置这一工作流程。 首先,我们需要在 Windows 上完成两个主要的...

    linux编译与调试

    一、Linux编译 1. `gcc`编译器:`gcc`(GNU Compiler Collection)是Linux中最常用的C/C++编译器,它能将源代码转化为可执行文件。基本的编译流程包括预处理、编译、汇编和链接四个阶段。使用`gcc`的基本命令格式...

    如何在Linux下用gcc编译c程序

    对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...

    如何在Linux使用Eclipse + CDT开发C C++程序

    传统在 Linux 下开发程序,是在文字模式下,利用 vi 等文字编辑器撰写 C/C++ 程序存盘后,在 Command line 下使用 gcc 编译,若要 debug,则使用 gdb。这种开发方式生产力并不高,若只是开发学习用的小程序则影响...

    高级C C++编译技术_[美]斯特瓦诺维奇著

    在Linux环境下,理解这些技术尤其重要,因为Linux提供了丰富的开源工具和库,开发者需要掌握如何有效地利用它们。斯特瓦诺维奇的书可能会提供实践指导,帮助读者理解和解决实际开发中遇到的问题,比如优化程序性能、...

    linux程序编译调试介绍.pdf

    ### Linux程序编译调试知识点详解 #### 一、GCC(GNU Compiler Collection)概述 GCC,全称为GNU Compiler Collection,是一个广泛使用的开源编译器套件,支持多种编程语言,包括但不限于C、C++、Objective-C、...

    linux下GCC编译C程序

    1. **编译单个源文件**:创建一个简单的C程序,例如经典的"Hello World"程序,然后使用`gcc`命令编译。例如: ```bash gcc -o hello hello.c ``` 这会生成名为`hello`的可执行文件。默认情况下,不指定输出...

    Linux中使用VS Code编译调试C++项目详解

    在Windows下,如果你用Visual Studio进行开发,C/C++的编译器一般采用微软提供的MSBuild;在Linux下C/C++的编译器大多采用gcc/g++。既然要在Linux下进行C++开发,很有必要了解一下g++编译器的一些基本知识。 假设我...

    linux下c/c++连oracle数据库技术pro*c

    使用`proc`命令可以预编译包含PL/SQL的源代码文件,生成C/C++源代码。 4. **Pro*C语法**: 在Pro*C程序中,使用`EXEC SQL`语句来执行SQL和PL/SQL。例如,`EXEC SQL SELECT * FROM table;`用于查询表中的所有记录。...

    linux c/c++基础学习资料(百度云链接和提取码)

    在Linux上开发C/C++程序,需要安装必要的开发工具,如GCC/G++编译器、Make工具、GDB调试器等。同时,理解环境变量、编译链接过程、动态库静态库的使用也是编程环境搭建的关键。此外,学会使用版本控制系统如Git进行...

    linux c/c++ gdb调试手册

    ### Linux C/C++ GDB调试手册知识点概览 #### GDB概述 - **定义与功能**:GDB(GNU Debugger)是由GNU项目开发的一款强大的调试工具,主要用于在UNIX及类UNIX系统(如Linux)上进行程序调试。它支持C、C++等多种...

    vs code配置C/C++调试器和编译器json文件

    vs code配置C/C++调试器和编译器json文件

    Linux下C/C++开发入门及开发环境配置

    GCC不仅支持C语言,还支持C++等其他语言,是Linux环境下首选的编译工具。 ##### GCC的安装与使用 在大多数Linux发行版中,GCC已经预先安装或者可以通过包管理器轻松获取。通过终端命令`gcc --version`可以检查GCC...

Global site tag (gtag.js) - Google Analytics