第7章 Rational系统测试组件的运用.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 Rational系统测试组件的运用 7.3 Rational Purify 7.3.1 Rational Purify功能简介 Purify是一个面向VC, VB或者Java开发的测试Visual C/C++和Java代码中与内存有关的错误, 确保整个应用程序的质量和可靠性。在查找典型的Visual C/C++ 程序中的传统内存访问错误,以及 Java 代码中与垃圾内存收集相关的错误方面,Rational Purify 可以大显身手。 功能描述 一、可检查的错误类型 未初始化的局部变量 未申请的内存 使用已释放的内存 数组越界问题 内存丢失问题 堆栈溢出问题 堆栈结构边界错误 错误类型 All error messages 所有错误信息。 All informational messages 所有报告的信息 All warning messages 所有警告的信息。 Allocations deallocation 地址分配和储存单元分配。 Dll messages 动态连接库信息。 Invalid handle 无效,非法的句柄。 Invalid pointer 无效,非法的指针。 错误类型 Memory leaks 内存泄露。 Parameter error 参数错误。 Stack error 堆错误。 Unhandled exception 未处理的例外。 Uninitialized Memory Read (UMR) 未初始化内存读 错误类型 Array Bounds Read (ABR):数组越界读 Array Bounds Write (ABW):数组越界写 Beyond Stack Read (BSR):堆栈越界读 Free Memory Read (FMR):空闲内存读 Invalid Pointer Read (IPR):非法指针读 Null Pointer Read (NPR):空指针读。 错误类型 信息色彩: 红色:内存块没有被分配和初始化 蓝色:内存块已经被分配并且初始化了 黄色:内存块已经被分配并且没有初始化 例子程序hello.c #include windows.h WINAPI WinMain( HINSTANCE hInstance, // handle of current instance HINSTANCE hPrevInstance,// handle of previous instance LPSTR lpszCmdLine,// address of command line int nCmdShow // show state of window ) { int i, length; char *string1 = Hello, Windows; char *string2 = malloc(10); 例子程序hello.c length = strlen(string2); // UMR because string2 is not initialized. for (i = 0; string1[i] != \0; i++) { string2[i] = string1[i]; // ABWs generated on this line. } length = strlen(string2); // ABR generated on this line. MessageBox(NULL, Hello, Windows, The Windows Hello Dialog, MB_OK | MB_ICONINFORMATION); return 0; } 例子程序example.cpp 1 #include iostream 2 using namespace std; 3 int main(){ 4 char* str1=four; 5 char* str2=new char[4]; //not enough space 6 char* str3=str2; 例子程序example.cpp 6 char* str3=str2; 7 coutstr2endl; //UMR 8 strcpy(str2,str1); //ABW 9 coutstr2endl; //ABR 10

文档评论(0)

nuvem + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档