16
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ộc TPHCM, tháng 05/2009

Rational purify plus

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Rational purify plus

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

Page 2: Rational purify plus

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

Page 3: Rational purify plus

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

Page 4: Rational purify plus

2. Các công cụ trong Rational PurifyPlusa. Rational Purifyb. Rational Quantifyc. Rational PureCoverage

Page 5: Rational purify plus

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})

Page 6: Rational purify plus

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)

Page 7: Rational purify plus

a. Rational Purify

•Các ngôn ngữ Java, .Net có xảy ra hiện tượng rò rĩ bộ nhớ ?

Page 8: Rational purify plus

a. Rational Purify với Java và .NET

Page 9: Rational purify plus

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

Page 10: Rational purify plus

a. Rational PurifyPlus với Java và .NET•VD :

Page 11: Rational purify plus

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 :

Page 12: Rational purify plus

b. Ví dụ Rational Quantify

Page 13: Rational purify plus

b. Ví dụ Rational Quantify

Page 14: Rational purify plus

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

Page 15: Rational purify plus

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:

Page 16: Rational purify plus

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