C C++ 编译器和调试器以及静态库、动态库使用汇总

C C++ 编译器和调试器以及静态库、动态库使用汇总

ID:37908927

大小:56.50 KB

页数:6页

时间:2019-06-02

C C++ 编译器和调试器以及静态库、动态库使用汇总_第1页
C C++ 编译器和调试器以及静态库、动态库使用汇总_第2页
C C++ 编译器和调试器以及静态库、动态库使用汇总_第3页
C C++ 编译器和调试器以及静态库、动态库使用汇总_第4页
C C++ 编译器和调试器以及静态库、动态库使用汇总_第5页
资源描述:

《C C++ 编译器和调试器以及静态库、动态库使用汇总》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C/C++编译器和调试器以及静态库、动态库使用汇总2005-08-2410:00am作者:linux宝库(http://www.linuxmine.com)来自:linux宝库(http://www.linuxmine.com)联系:linuxmine#gmail.com经常的,有朋友问到有关unix下面调试的技术。我整理了大多数的unix系统下面的常用的调试工具的调试技术的文章。希望对大家有所帮助。另外静态库、动态库也是问的频率比较高的问题。在这里也做了总结。######大多数unix系统下面的调试器的使用

2、方法如下:######***************gdb介绍*********************GNU的调试器称为gdb,该程序是一个交互式工具,工作在字符模式。在XWindow系统中,有一个gdb的前端图形工具,称为xxgdb。gdb是功能强大的调试程序,可完成如下的调试任务:*设置断点;*监视程序变量的值;*程序的单步执行;*修改变量的值。在可以使用gdb调试程序之前,必须使用-g选项编译源文件。可在makefile中如下定义CFLAGS变量:CFLAGS=-g运行gdb调试程序时通常使用如下的命

3、令:gdbprogname在gdb提示符处键入help,将列出命令的分类,主要的分类有:*aliases:命令别名*breakpoints:断点定义;*data:数据查看;*files:指定并查看文件;*internals:维护命令;*running:程序执行;*stack:调用栈查看;*statu:状态查看;*tracepoints:跟踪程序执行。键入help后跟命令的分类名,可获得该类命令的详细清单。*********gdb的常用命令***************命令解释breakNUM在指定的行上设置断

4、点。bt显示所有的调用栈帧。该命令可用来显示函数的调用顺序。clear删除设置在特定源文件、特定行上的断点。其用法为:clearFILENAME:NUM。continue继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。displayEXPR每次程序停止后显示表达式的值。表达式由程序定义的变量组成。fileFILE装载指定的可执行文件进行调试。helpNAME显示指定命令的帮助信息。infobreak显示当前断点清单,包括到达断点处的次数等。infofiles显示被调试文件的详细信息。

5、infofunc显示所有的函数名称。infolocal显示当函数中的局部变量信息。infoprog显示被调试程序的执行状态。infovar显示所有的全局和静态变量名称。kill终止正被调试的程序。list显示源代码段。make在不退出gdb的情况下运行make工具。next在不单步执行进入其他函数的情况下,向前执行一行源代码。printEXPR显示表达式EXPR的值。******gdb使用范例************************-----------------清单一个有错误的C源程序buggin

6、g.c-----------------#include#includestaticcharbuff[256];staticchar*string;intmain(){printf("Pleaseinputastring:");gets(string);printf("Yourstringis:%s",string);}-----------------上面这个程序非常简单,其目的是接受用户的输入,然后将用户的输入打印出来。该程序使用了一个未经过初始化的字符串地址string,因此,编译并运行之后,将

7、出现SegmentFault错误:$gcc-otest-gtest.c$./testPleaseinputastring:asfdSegmentationfault(coredumped)为了查找该程序中出现的问题,我们利用gdb,并按如下的步骤进行:1.运行gdbbugging命令,装入bugging可执行文件;2.执行装入的bugging命令;3.使用where命令查看程序出错的地方;4.利用list命令查看调用gets函数附近的代码;5.唯一能够导致gets函数出错的因素就是变量string。用prin

8、t命令查看string的值;6.在gdb中,我们可以直接修改变量的值,只要将string取一个合法的指针值就可以了,为此,我们在第11行处设置断点;7.程序重新运行到第11行处停止,这时,我们可以用setvariable命令修改string的取值;8.然后继续运行,将看到正确的程序运行结果。运行gcc/egcs**********运行gcc/egcs***********************GC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。