首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NUnit运行期间跟踪ETW

在NUnit运行期间跟踪ETW
EN

Stack Overflow用户
提问于 2015-03-20 01:56:40
回答 1查看 362关注 0票数 1

我正在开发一个多线程应用程序,我知道在我的应用程序中存在某种竞争条件/死锁,因为每隔一段时间,我的一个单元测试就会卡住,永远不会结束(目前我已经使用NUnit超时属性解决了这个问题)。当我调试测试时,我永远不能复制它。

我已经将ETW跟踪编码到了我的应用程序中,这对调试这个问题绝对有帮助。问题是,要执行ETW跟踪,应用程序必须由PerfView或其他与跟踪下的应用程序共享内存的应用程序启动(据我所知)。

我的问题是:有没有人知道一种方法,可以运行NUnit测试,并将ETW跟踪事件记录在一个单独的文件中,以便稍后通过PerfView运行?这样,每当我看到我的测试失败时,我就可以查看运行的跟踪并进行分析,以了解发生了什么。顺便说一下,我使用的是Resharper的NUnit runner。

欢迎任何其他方法/技术。感谢您的反馈。

EN

回答 1

Stack Overflow用户

发布于 2016-02-20 10:52:42

  • 编写一个从EventListener派生的简单实现,为您有兴趣侦听的提供程序收集ETW跟踪。
  • 将存储跟踪的内容手动转储到一个文件或使用某个库(例如,您可以将日志集合序列化为JSON字符串并将其写入文本文件),甚至验证存储的事件作为测试的一部分validation.
  • Update您的测试以使用该侦听器。

在这种情况下,您可以在构建控制器计算机上创建带有跟踪创建事件文件,在该计算机上您可能没有使用logman/PerfMon的权限/访问权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29151771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档