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。
文章来源于领测软件测试网 https://www.ltesting.net/