`

gdb

 
阅读更多

gdb 使用参考 http://kuchaguangjie.iteye.com/blog/913397

对于GUN编译器来说,程序的编译要经历预处理、编译、汇编、连接四个阶段.
在预处理阶段,输入的是C语言的源文件,通常为*.c。它们通常带有.h之类头文件的包含文件。这个阶段主要处理源文件中的#ifdef、 #include和#define命令。该阶段会生成一个中间文件*.i,但实际工作中通常不用专门生成这种文件,因为基本上用不到;若非要生成这种文件不可,可以利用下面的示例命令:

gcc -E  test.c -o test.i

在编译阶段,输入的是中间文件*.i,编译后生成汇编语言文件*.s 。这个阶段对应的GCC命令如下所示:

GCC -S test.i -o test.s

在汇编阶段,将输入的汇编文件*.s转换成机器语言*.o。这个阶段对应的GCC命令如下所示:

GCC -c test.s -o test.o

最后,在连接阶段将输入的机器代码文件*.s(与其它的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这一步骤,可以利用下面的示例命令完成:

GCC test.o -o test

上面介绍了GCC编译过程的四个阶段以及相应的命令。下面简单说明一下gdb
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:

    > cc -g hello.c -o hello
    > g++ -g hello.cpp -o hello

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。

启动GDB的方法有以下几种:

    1、gdb <program>
       program也就是你的执行文件,一般在当然目录下。

    2、gdb <program> core
       用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

    3、gdb <program> <PID>
       如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。

关于GDB调试 参考文章 http://blog.csdn.net/haoel/article/details/2879
分享到:
评论

相关推荐

    gdb手册debuging with gdb 中文

    ### GDB手册知识点详解 #### 一、GDB简介与手册背景 GNU调试器(GDB)是一款功能强大的源码级调试工具,适用于多种编程语言,包括但不限于C、C++等。该手册针对的是GDB的第六版,版本号为6.8.50.20090706,提供了...

    gdb完全手册.pdf.zip_GDB pdf_GDB中文手册_gdb_linux_linux gdb pdf

    GDB(GNU Debugger)是GNU项目的一个组成部分,是一款强大的源代码级调试器,适用于C、C++、Fortran、Objective-C、Python等语言。这款工具允许程序员在运行代码时检查程序的状态,包括变量值、内存区域、调用堆栈等...

    GDB.zip_debugger_gdb debgger保存_gdb调试_gnu debugger

    《深入理解GDB:GNU调试器的探索与实践》 GDB,全称为GNU Debugger,是开源社区GNU项目的一部分,专为Unix类操作系统设计的一款强大的源代码级调试工具。无论你是初学者还是经验丰富的开发者,GDB都能提供必要的...

    gdb11.1 gdb9.2 无法读取clang dwarf

    在IT行业中,`gdb`(GNU Debugger)是一款强大的源代码级调试器,用于调试C、C++等语言编译的程序。`dwarf`是编译器在编译过程中生成的一种元数据格式,用于存储关于源代码的信息,如变量、函数、类型等,方便调试...

    gdb64.exe和gdb.exe

    GDB(GNU Debugger)是GNU项目的一个开源工具,用于调试C、C++和其他语言编写的程序。在给定的压缩包中,包含了两个版本的GDB:`gdb64.exe`和`gdb.exe`。`gdb64.exe`是64位版本的GDB,用于调试64位应用程序,而`gdb....

    Linux下GDB的移植

    Linux下GDB的移植 GDB是GNU开放源代码的调试器,广泛应用于Linux系统中。为了在Linux下进行程序调试,需要将GDB移植到目标平台上。本文将详细介绍GDB的移植步骤,包括准备工作、编译ncurses、编译GDB、测试等环节。...

    GDB调试手册(中文版)

    GDB调试手册是一份非常适合初学者的中文资源,它详尽地介绍了如何使用GDB这一强大的开源调试工具。GDB,全称GNU调试器,是Linux和其他类Unix系统下用于调试C、C++、Objective-C、Fortran等语言编写的程序的工具。...

    ubuntu20.04对应的gdb安装包

    在Ubuntu 20.04操作系统中,GDB(GNU调试器)是一个至关重要的工具,尤其对于软件开发者和系统管理员来说。它是一个源代码级别的调试器,允许用户检查和调试运行中的程序,查找并修复代码错误。这个"ubuntu20.04-gdb...

    GDB完全中文书册

    ### GDB调试工具详解 #### 一、GDB概述与特点 **GDB**(GNU Debugger)是由GNU项目提供的一款强大且免费的程序调试工具,主要用于UNIX及其衍生系统(如Linux)上的软件开发。尽管现代集成开发环境(IDE)如Visual ...

    gdb.exe文件

    标题中的“gdb.exe文件”指的是GNU Debugger的可执行文件,它是开源的C、C++以及其他语言的调试工具。在编程过程中,特别是进行低级别调试或优化代码时,GDB是一个不可或缺的工具。它允许程序员设置断点、单步执行...

    GDB调试器(gdb-7.0.2)

    GDB调试器(gdb-7.0.2)是一款由GNU开源组织提供的强大调试工具,主要用于在UNIX系统以及类似环境中调试C和C++程序。它具有丰富的功能,可以帮助开发者定位并解决代码中的错误,提高软件开发的效率和质量。在Windows...

    包括gdb64.exe和gdb.exe

    GDB,全称为GNU调试器(GNU Debugger),是开源社区GNU项目的一部分,是一个强大的命令行工具,用于调试C、C++、Fortran等语言编写的程序。它允许开发者在程序运行时检查和控制程序状态,如查看内存变量、设置断点、...

    Linux GDB调试文档

    在Linux开发环境中,GDB(GNU调试器)是进行源码级调试的重要工具,尤其适用于C/C++语言编程。其全称为"The gnu Source-Level Debugger",是GNU项目的一部分。随着版本*.*.*.**的发布,GDB不仅保持了其作为源码级...

    GDB安装步骤,详细步骤

    GDB(GNU调试器)是Linux环境下用于C、C++等编程语言的开源调试工具,它可以帮助开发者在程序运行过程中检查变量状态、设置断点、单步执行代码,从而定位和修复程序中的错误。以下是对GDB安装的详细步骤解析: 1. *...

    gdb-multiarch 14.2 windows更新版本,增加gdb服务,支持python3

    GDB(GNU Debugger)是一款强大的源代码级调试器,用于检查和调试C、C++以及许多其他编程语言的程序。GDB-Multiarch是其扩展版本,特别设计用于支持多种架构,包括ARM、RISC和X86等。在GDB-Multiarch 14.2的Windows...

    GDB查找内存泄露

    GDB(GNU Debugger)是一个强大的调试工具,能够帮助开发者在C/C++等语言的程序中查找和定位内存泄露的问题。下面将详细介绍如何使用GDB来查找和分析内存泄露。 首先,内存泄露通常发生在动态分配的内存没有被正确...

    gdb调试 rk可运行程序

    GDB(GNU Debugger)是一款强大的源代码级调试器,广泛应用于Linux和其他Unix-like操作系统中,用于调试C、C++以及其他支持的编程语言编译出的程序。在这个场景中,我们将聚焦于如何使用GDB来调试基于ARM AArch64...

    GDB使用手册(中文版)

    **GDB使用手册(中文版)** GDB(GNU调试器)是开源世界中最常用的调试器之一,尤其在Linux环境中,它为C、C++、Fortran等编程语言提供了强大的调试支持。本手册将深入介绍如何有效地利用GDB进行程序调试,帮助开发者...

    Linux绿色gdb,无需安装,支持c++对象

    Linux中的GDB(GNU调试器)是一款强大的源代码级调试工具,主要用于C和C++程序。这个绿色版的GDB意味着它是一个便携式的版本,无需通过编译或配置系统级别的安装过程,用户可以直接在指定目录下运行。这使得在不同...

    virtual gdb vs2022可用

    标题“virtual gdb vs2022可用”表明讨论的主题是关于Visual Studio 2022 (VS2022) 集成的一种虚拟GDB(GNU Debugger)工具的可用性。GDB是一款强大的源代码级调试器,广泛用于C、C++和其他语言的调试,而"virtual ...

Global site tag (gtag.js) - Google Analytics