• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

C/C++內存問題檢查利器—Purify 設置WatchPoint

發布: 2009-4-20 17:33 | 作者: 陳皓 | 來源: 測試時代采編 | 查看: 552次 | 進入軟件測試論壇討論

領測軟件測試網

MILY: 宋體">設置WatchPoint

你可以在你的程序中,對你所想監控的程序設置一些WatchPoint,以方便于你對程序進行調試,或更容易找出問題的原因。就像我前面說,Purify可以找到你的內存泄露,但其不能找到內存泄露的原因,你可以通過設置WatchPoint來跟蹤一塊內存,以找到在程序執行過程中該內存的訪問情況。

 

PurifyWatchPoint可以產生下例消息:

 

l         WPR(被WatchPoint的內存讀)

l         WPW(被WatchPoint的內存寫)

l         WPM(被WatchPoint的內存分配)

l         WPF(被WatchPoint的內存釋放)

l         WPN(來到被WatchPoint的內存的Scope

l         WPX(離開被WatchPoint的內存的Scope

 

一旦你設置好了一個WatchPoint,Purify會自動報告上述這些信息,以告訴你內存的存取情況。很方便你調試程序。

 

WatchPoint一般是在調試程序時跟蹤一塊內存時候使用的,你也可以用其跟蹤一些系統級的全局變量,如:errno。一旦errno被寫了,馬上會報告一個WPW消息,展開后,你能看到函數的堆棧情況,以及是在哪個系統調用后出現了錯誤。這個使用很方便我們找到一些非內存方面的問題。

 

大家可能會有一種感覺,那就是在一般的調試器中,如GDB中也有WatchPoint的設置(對GDB的使用請參考我的文章《GDB調試程序》),那么,在調試器中的WatchPointPurify的有什么不同?下面是一些GDB中的WatchPoint不足的地方:

 

1)  GDB中的WatchPoint用于單步跟蹤中。

2)  GDB中的WatchPoint只能在其內存的Scope中,離開了Scope,WatchPoint會被刪除。

3)  GDB中設置一個4字節的內存WatchPoint,會讓程序的運行效率下降1000個數量級。

 

Purify中的WatchPoint有效地克服了這些問題,它在全局范圍內監控所有內存的使用,并且,其速度上大大地快于GDB等一系列的調試器。

 

有兩種方式可以讓我們設置PurifyWatchPoint,一種是在程序中使用WatchPointAPI函數,一種是直接在調試器中使用(如:GDB),下面我介紹一下這兩種用法:

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: purify Purify 檢查 利器 內存 WatchPoint

51/512345>

關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97