Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376041
  • 博文数量: 105
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 826
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-16 13:58
个人简介

记录有意义的东西

文章分类

全部博文(105)

文章存档

2013年(105)

我的朋友

分类: C/C++

2013-04-15 03:17:34

C/C++内存问题检查利器—Purify (五)

十、             设置WatchPoint你可以在你的程序中,对你所想监控的程序设置一些WatchPoint,以方便于你对程序进行调试,或更容易找出问题的原因。就 像我前面说,Purify可以找到你的内存泄露,但其不能找到内存泄露的原因,你可以通过设置WatchPoint来跟踪一块内存,以找到在程序执行过程 中该内存的访问情况。 Purify的WatchPoint可以产生下例消...
阅读(5041) 评论(0)

C/C++内存问题检查利器—Purify (四)

 七、             Purify的退出码像UNIX下的软件,一般都会提供和别的应用程序的接口,像上面的生成文本文件,也是给别的应用程序提供接口的一种方式。这里,我们 所要讲述的是Purify的退出码,我们知道程序都有退出码,以提供给别的程序或操作系统自己运行的信息。被Purify编译过的程序,你可以通过指定 -exit-status参数来告诉Purify是否用Purify的退出码,...
阅读(4137) 评论(0)

C/C++内存问题检查利器—Purify (三)

五、             文件描述符问题在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++的程序员,并不陌生。有一些关于Watchpoint和文件描述 符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这一节,我就一个示例说一说文件描述述问题是如何产生的,并由此介绍一下 Purify的一些特性。 先查看下面这段程序:  ...
阅读(10968) 评论(1)

C/C++内存问题检查利器—Purify (二)

 三、           示例假设我们现在有这样一段程序:hello.c #include #include   static char *helloWorld = "Hello, World"; ...
阅读(7051) 评论(1)

C/C++内存问题检查利器—Purify (一)

C/C++内存问题检查利器——Purify 陈皓一、           引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到内存上的问题。     使用C/C++开发的团队一定有被其内存问题折磨过的...
阅读(13110) 评论(3)

用GDB调试程序(三)

四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用 delete、clear、disable、enable这几个命令来进行维护。    clear        清除所有的已定义的停止点。    clear     clear         清除所有设置在函数上的停止点。    clear    ...
阅读(13668) 评论(9)

用GDB调试程序(六)

 七、设置显示选项    GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。    set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如:                (gdb) f        #0  set_quotes (lq=0x3...
阅读(10745) 评论(0)

用GDB调试程序(七)

改变程序的执行———————    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的 功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。        一、修改变量值    修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:...
阅读(13262) 评论(7)

用GDB调试程序(五)

 查看运行时数据———————        在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格 式是:        print     print /         是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么...
阅读(15762) 评论(1)

用GDB调试程序(四)

查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变 量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:    backtrace     bt         打印当前的函数调用栈的所有信息。如:               ...
阅读(13898) 评论(2)

用GDB调试程序(二)

GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令 来查看,如下所示:    /home/hchen> gdb    GNU gdb 5.1.1    Copyright 2002 Free Software Foundation, Inc.    GDB is free software, cov...
阅读(26675) 评论(6)

用GDB调试程序(一)

用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、 BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺 有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:    1、启动你的程序...

阅读(977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~