因为OpenMP是将循环的计算多线程化,所以data sharing event一般都在某行/段代码反复发生,这会影响纠错工作,你不会希望看100000...次同一个事件。event filter 能帮你滤掉已知或暂不关心的事件。
下图显示怎样滤掉发生在某个函数中的thread data sharing事件
下图显示怎样滤掉发生在某个变量上的thread data sharing事件
当你设完后,在thread data sharing filter窗口中见它们,及其状态。
如下图所示, 我已打开事件监测和stop on event, 并设定两个filters。似乎程序运行到 nrOfSolutions ++时不该暂停,因为关于nrOfSolutions的filter应忽略该事件。不幸的是,程序暂停了, 原因是在非debug状态时debugger缺少相关信息无法激活filter。
请右击该filter,选择“Reevaluate”,debugger会激活该filter,程序将如你所愿,忽略该事件并继续运行。(Tip)或在debug状态下,程序暂停时设filter,那时filter被立即激活。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10256541/viewspace-588670/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10256541/viewspace-588670/