2、 MILY: 宋體">在GDB中使用。
在GDB中,我們可以簡單地使用GDB的print命令來達到設置Purify的WatchPoint目的。這正是Purify的強大之處,其對這種技術稱為JIT(Just-In-Time)。
示例:
gdb) print purify_watch(&my_str)
(gdb) print purify_watch_1(&my_char)
(gdb) print purify_watch_n(buf, sizeof(buf), "rw")
(dbx) print purify_watch_n(write_only_buf,100,"w")
下面來讓我們看一看Purify的WatchPoint的API函數,其分成三類:
• 設置類
int purify_watch(char *addr)
對所指定的內存進行監視,char* 表示以單字節為單位。
int purify_watch_<num> (char *addr) <num>=1,2,4,8
其中的<num>是一個數字,可以是1,2,4,8表示,監控單字節,雙字節,四字節,八字節。函數名為:purify_watch_1(),purify_watch_2(),purify_watch_4(),purify_watch_8。
int purify_watch_n(char *addr, unsigned int size, char *type)
(type = “r”, “w” or “rw”)
監控特定長度的內存,type取值為“r”,“w”“rw”,意為監控內存的讀還是寫。
• 查詢類
int purify_watch_info().
打印目前設置的WatchPoint的情況(一般在GDB類的調試器中使用)。有點像GDB的info watch命令。
• 刪除類
Int purify_watch_remove(int watchno)
刪除指定的WatchPoint,其watchno為設置WatchPoint的函數的返回值。
int purify_watch_remove_all()
刪除所有的WatchPoint。
文章來源于領測軟件測試網 http://www.kjueaiud.com/