我正在研究一个多线程应用程序,我知道我的应用程序中存在某种竞争条件/死锁,因为每隔一段时间,我的一个单元测试就会卡住并且永远不会完成(现在我已经解决了这个问题)使用NUnit Timeout属性)。在调试测试时,我永远无法复制这个。
我已将ETW跟踪编码到我的应用程序中,这肯定有助于调试此问题。问题是要进行ETW跟踪,应用程序必须由PerfView或其他与跟踪应用程序共享内存的应用程序启动(据我所知)。
我的问题是:有没有人知道运行NUnit测试的方法,并将ETW跟踪事件记录在一个可以在以后通过PerfView运行的单独文件中?这样,每当我看到我的测试失败时,我都可以查看该运行中的跟踪并分析以查看发生了什么。作为旁注,我正在使用Resharper的NUnit跑步者。
欢迎任何其他方法/技术。感谢您的反馈。
答案 0 :(得分:1)
在这种情况下,您可以在构建控制器计算机上创建具有跟踪创建事件的文件,您可能没有权限/访问权限使用logman / PerfMon。