`

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完全手册.pdf.zip_GDB pdf_GDB中文手册_gdb_linux_linux gdb pdf

    这是GDB完全手册,用来在Linux环境下的GDB调试,很重要

    Debugging With GDB中文版

    This is the Tenth Edition, of Debugging with GDB: the GNU Source-Level Debugger for GDB (GDB) Version 8.1.90.20180814-git. Copyright © 1988-2018 Free Software Foundation, Inc. Permission is granted...

    GDAL 1.10全套增加FileGDB支持

    内部将FileGDB、HDF4、HDF5、GEOS、PROJ4、ECW、Jpg2000、libexpt、libcurl、libiconv、netcdf、xerces_c、sqlite3等常用的库全部编译进去 语言 C\C++、C#、Java、Python 含有帮助文档 如果程序不能执行,或者...

    Linux课件:GDB调试简明指南.pdf

    Linux 调试工具 GDB 简明指南 GDB(GNU Debugger)是 Linux 系统中的一款强大调试工具,用于调试 C 和 C++ 程序。它使用户可以在程序运行时观察程序的内部结构和内存的使用情况。GDB 提供了多种功能,如监视程序中...

    gdb+gdbserver安装,配置和调试

    就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:...采用GDB方法调试,由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试。

    VisualGDB 5.6 R9//支持VS2008-VS2022

    VisualGDB 是 Visual Studio 的一个非常强大的扩展,它允许您调试或调试嵌入式系统。这个程序有一个非常有吸引力的用户界面,它具有许多用于调试或调试代码的功能。VisualGDB 还有一个向导,可以帮助您调试程序并为...

    基于FME实现的地理数据库建库工具,gdb批量建库工具,mdb批量建库工具,shp批量建库工具,自动建库,mdb建库,gdb建库

    2.支持gdb、mdb、shapefile格式的标准数据库建库 3.实现字段长度、字段别名、字段类型、图层别名、图层类型、要素集、坐标系的设置。 4.支持点、线、面、文本、表等图层 5.工具的实现过程无需写出读取临时表,更加...

    gdb实例.docx

    gdb调试案例gdb64常用命令说明: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) ...

    GDB调试GDB调试

    GDB调试GDB调试GDB调试GDB调试GDB调试 GDB调试GDB调试GDB调试GDB调试GDB调试

    gdb 快速入门中文教程

    GDB使用手册 GDB调试器使用手册(一) ................................................................................................. 1 使用GDB: ........................................................

    GDB调试详细命令

    GDB详细手册,文档内部分内容: //查看运行中的线程 (gdb) info thread //查看线程 (gdb) thread &lt;n&gt; //切换为线程id (gdb) bt //backtrace 打印堆栈 (gdb) break xx.cpp:xx thread all //在所有线程上打断点 (gdb) ...

    arcgis中mdb批量转gdb

    功能:可以在arcgis软件中,利用mdb批量转gdb工具,实现批量的mdb转为gdb

    python实现制定目录下所有arcgis gdb内要素的批量添加

    (1)利用os.walk搜索制定目录下所有gdb目录下的要素,采用arcpy将gdb内的要素批量加载至arcmap中。 (2)实现的主要技术难点是目录、gdb名称、要素名称中存在中文,制造了很大的困难,本脚本顺利解决了中文乱码的...

    包括gdb64.exe和gdb.exe

    gdb64.exe和gdb.exe,呐,如名字所示喽

    gdb调试(个人收集的丰富的GDB调试资料)

    GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大...

    Linux GDB调试文档

    使用GDB调试,英文版。对于从事 Linux C/C++ 后台开发的读者来说,GDB 调试是需要熟练掌握的一项技能

    visualgdb 5.1r5 正式版 破解

    visualgdb新版本对android的开发调试支持越来越好。我相信很多用户会对这个的需求越来越深入。喝水不忘挖井人,感谢VISUALGDB这个产品的开发者。更感谢fallrain 对此做的贡献。 Fixes in R5: Added a workaround for...

    GDB完全中文书册

    屌到不行的GDB中文书册,简洁精要,基本上掌握这些就足够了

    BDI3000 GDB中文手册

    BDI3000/2000 是一款功能强大而且非常稳定耐用的JTAG/BDM仿真器,可以在 Windows/Linux平台下使用,通过...BDI支持很多调试器,其中bdiGDB采用标准的GDB远程协议,支持GNU debugger (GDB),是调 试Linux的首选工具。

    arcgis批量mdb转gdb

    arcgis批量mdb转gdb。arcgis批量mdb转gdb................

Global site tag (gtag.js) - Google Analytics