2013年4月10日

Purify检测的代码错误类型

摘要: 一、 红色叹号提示 1、 ABR: Array Bounds Read 数组越界读(只检测动态内存分配的数组,对Global、Local、Static的数组无法检测)。 2、 ABW: Array Bounds Write 数组越界写(只检测动态内存分配的数组,对Gl... 阅读全文

posted @ 2013-04-10 17:09 胡永光 阅读(124) 评论(0) 推荐(0) 编辑

内存分析利器purify简介

摘要: 1.内存问题的原因及分类 在C/C++程序中,有关内存使用的问题是最难发现和解决的。这些问题可能导致程序莫名其妙地停止、崩溃,或者不断消耗内存直至资源耗尽。由于C/C++语言本身的特质和历史原因,程序员使用内存需要注意的事项较多,而且语言本身也不提供类似Java的垃圾清理机制。编程人员使用一... 阅读全文

posted @ 2013-04-10 17:07 胡永光 阅读(300) 评论(0) 推荐(0) 编辑

ldd 的一个安全问题

摘要: 源文:http://coolshell.cn/?p=1626 (酷壳) 我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,l... 阅读全文

posted @ 2013-04-10 16:38 胡永光 阅读(133) 评论(0) 推荐(0) 编辑

用GDB调试程序(七)

摘要: 改变程序的执行 ——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改... 阅读全文

posted @ 2013-04-10 16:35 胡永光 阅读(95) 评论(0) 推荐(0) 编辑

用GDB调试程序(六)

摘要: 七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: ... 阅读全文

posted @ 2013-04-10 16:34 胡永光 阅读(109) 评论(0) 推荐(0) 编辑

用GDB调试程序(五)

摘要: 查看运行时数据 ——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表达式,是你所调... 阅读全文

posted @ 2013-04-10 16:33 胡永光 阅读(98) 评论(0) 推荐(0) 编辑

用GDB调试程序(四)

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

posted @ 2013-04-10 16:32 胡永光 阅读(81) 评论(0) 推荐(0) 编辑

用GDB调试程序(三)

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

posted @ 2013-04-10 16:31 胡永光 阅读(83) 评论(0) 推荐(0) 编辑

用GDB调试程序(二)

摘要: GDB的命令概貌 ——————— 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free S... 阅读全文

posted @ 2013-04-10 16:30 胡永光 阅读(110) 评论(0) 推荐(0) 编辑

用GDB调试程序(一)

摘要: 用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有... 阅读全文

posted @ 2013-04-10 16:24 胡永光 阅读(95) 评论(0) 推荐(0) 编辑

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

摘要: 十、 设置WatchPoint 你可以在你的程序中,对你所想监控的程序设置一些WatchPoint,以方便于你对程序进行调试,或更容易找出问题的原因。就像我前面说,Purify可以找到你的内存泄露,但其不能找到内存泄露的原因,你可以通过设置WatchPoint来跟踪一块... 阅读全文

posted @ 2013-04-10 16:19 胡永光 阅读(173) 评论(0) 推荐(0) 编辑

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

摘要: 七、 Purify的退出码 像UNIX下的软件,一般都会提供和别的应用程序的接口,像上面的生成文本文件,也是给别的应用程序提供接口的一种方式。这里,我们所要讲述的是Purify的退出码,我们知道程序都有退出码,以提供给别的程序或操作系统自己运行的信息。被Purify编译... 阅读全文

posted @ 2013-04-10 16:17 胡永光 阅读(180) 评论(0) 推荐(0) 编辑

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

摘要: 五、 文件描述符问题 在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++的程序员,并不陌生。有一些关于Watchpoint和文件描述符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这一节,我就一个示例说一说文件描述述问题是... 阅读全文

posted @ 2013-04-10 16:16 胡永光 阅读(168) 评论(0) 推荐(0) 编辑

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

摘要: 三、 示例 假设我们现在有这样一段程序:hello.c #include #include static char *helloWorld = "Hello, World"; main() { char *mystr = malloc(strle... 阅读全文

posted @ 2013-04-10 16:15 胡永光 阅读(182) 评论(0) 推荐(0) 编辑

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

摘要: C/C++内存问题检查利器——Purify 陈皓 一、 引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到... 阅读全文

posted @ 2013-04-10 16:13 胡永光 阅读(149) 评论(0) 推荐(0) 编辑

导航