之前在VS2015调试程序的时候,会出现一个诊断工具栏,详细记录了进程使用内存随时间的变化,用于分析内存泄漏很有用。但是突然在某个时间点之后(可能是因为某次windows的自动更新),调试程序时诊断工具再也起不来,显示“诊断工具意外失败,输出窗口中的诊断中心输出可能包含其他信息。”但实际上输出窗口也没有任何相关的提示。
google搜索到的有用信息为
https://stackoverflow.com/questions/34070673/how-to-fix-internal-diagnostics-hub-exception-in-vs-2015-update-1/38551580#38551580
参考这个上面的方法,添加了
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\DiagnosticsHub\LogLevel
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\DiagnosticsHub\LogDirectory
两个注册表项,打开了诊断工具的日志
但是从日志中,看到的错误为
Error --- PerformanceDebuggerStatusService --- Received error message when starting Performance Debugger: 没有注册类
完全不知道什么意思。
这里的解决方案是找到DiagnosticsHub.Collection的安装包,右键打开,点修复。但是他提到的安装包路径,我电脑上没有。只好用dir命令,在c:盘中找到了一堆安装包
C:\>dir *DiagnosticsHub* /s /a
这些MSI安装包的目录名之中,有v14.0.23107、v14.0.25431这些字眼,代表着版本号。因为windows不停更新,所以会有很多个版本。找到版本号最高的那个目录,点击右键,点修复,VS2015的诊断工具终于又可以用了。我电脑中成功修复的安装包为
C:\Users\All Users\Package Cache{2D02967A-1085-4421-8559-B0147208EE13}v14.0.25431\packages\DiagnosticsHub_CORECOLLECTION\amd64\DiagnosticsHub_CORECOLLECTION_amd64.msi
网友评论