Upload
nguyen-tran
View
583
Download
6
Embed Size (px)
DESCRIPTION
Citation preview
Rational PurifyPlus
Nhóm F5 + F6
Giảng viên lý thuyết : thầy Lâm Quang VũGiảng viên hướng dẫn : thầy Bùi Tấn LộcTPHCM, tháng 05/2009
Nội dung trình bày
1. Giới thiệu chung về Rational PurifyPlus2. Giới thiệu các công cụ trong Rational
PurifyPlus▫Rational Purify▫Rational Quantify▫Rational PureCoverage
1. Giới thiệu về Rational PurifyPlus•Công dụng : kiểm tra performance của
ứng dụng•Phiên bản mới nhất : Rational PurifyPlus
7.0•Các tính năng :
▫Kiểm tra các ứng dụng viết bằng C/C++, Visual Basic, managed code ( ngôn ngữ .Net, Java)
▫Tích hợp vào Visual Studio
2. Các công cụ trong Rational PurifyPlusa. Rational Purifyb. Rational Quantifyc. Rational PureCoverage
a. Rational Purify•Xét đoạn code sau :
#include <windows.h>WINAPIWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine,
int nCmdShow ) { int i, length; char *string1 = "Hello, Windows"; char *string2 = malloc(10);
length = strlen(string2);
for (i = 0; string1[i] != '\0'; i++) { string2[i] = string1[i]; } length = strlen(string2);
MessageBox(NULL, " Hello, Windows", "The Windows Hello Dialog", MB_OK | MB_ICONINFORMATION);}
hàm strlen đọc độ dài chuỗi string2 chưa được khởi tạo(UMR – Unitialized Memory Read in strlen ( 1 occurrence)
gán giá trị ngoài phạm vi của chuỗi(ABW – Array Bounds Write in WinMain {4 occurences})
hàm strlen đọc độ dài chuỗi vượt quá giới hạn chuỗi(ABR : Array Bounds Read in strlen {1 occurrence})
a.Rational Purify (tt)
•Chức năng : kiểm tra những lỗi liên quan đến vùng nhớ, sự rò rĩ vùng nhớ trong quá trình runtime
•Các ngôn ngữ :▫C/C++/VB▫Java, .NET (managed code)
a. Rational Purify
•Các ngôn ngữ Java, .Net có xảy ra hiện tượng rò rĩ bộ nhớ ?
a. Rational Purify với Java và .NET
a. Rational PurifyPlus với Java và .NET
•Các bước phân tích memory leaks:▫Chạy chương trình Java bằng Purify▫Chụp snapshot khi có việc sử dụng bộ nhớ.▫Thực thi những phần code có thể gây memory leaks và
snapshot▫Xác định các phương thức chứa leaked object không
được dọn bởi garbage collector
a. Rational PurifyPlus với Java và .NET•VD :
b. Rational Quantify
•Công dụng : Kiểm tra các lỗi gây “nghẽn cổ chai” cho chương trình
•Kiểm tra với các ngôn ngữ ▫C/C++▫Java và .Net
•Tích hợp được với Visual Studio•Demo :
b. Ví dụ Rational Quantify
b. Ví dụ Rational Quantify
c. Rational PureCoverage
Định nghĩa
•Là 1 thành phần của PurifyPLus•Có chức năng kiểm tra mức độ thực thi
của code•Giúp ta biết được 1 đoạn code đã được
test hay chưa
Coverage – Cách sử dụng•Cách chạy coverage cũng tương tự như
các thành phần khác:
Coverage – Cách sử dụng
Dòng code này
chưa được
gọi lần nào
Dòng code
này đã được gọi 2 lần