windows-7 – 如何在explorer.exe中创建新文件夹时诊断挂起

前端之家收集整理的这篇文章主要介绍了windows-7 – 如何在explorer.exe中创建新文件夹时诊断挂起前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我创建一个新文件夹时,我一直在使用explorer.exe挂起一些问题.

如果我在资源监视器中使用Analyze Wait Chain,则说“explorer.exe的一个或多个线程正在等待完成网络I / O”.

当我在Process Explorer中查看有问题的线程时,它没有显示任何有趣的内容

ntdll.dll!ZwWaitForMultipleObjects+0xa 
KERNELBASE.dll!GetCurrentThread+0x36 
kernel32.dll!WaitForMultipleObjectsEx+0xb3 
USER32.dll!PeekMessageW+0x1cd 
USER32.dll!MsgWaitForMultipleObjectsEx+0x2a 
USER32.dll!MsgWaitForMultipleObjects+0x20 
SHELL32.dll!SHAppBarMessage+0x41e 
SHELL32.dll!DragAcceptFiles+0x2a3c 
SHELL32.dll!DragAcceptFiles+0x2a4f 
SHELL32.dll!Ordinal211+0x124 
SHELL32.dll!SHChangeNotification_Unlock+0x12f4 
USER32.dll!GetSystemMetrics+0x2b1 
USER32.dll!IsDialogMessageW+0x19b 
USER32.dll!IsDialogMessageW+0x1e1 
ntdll.dll!KiUserCallbackDispatcher+0x1f 
USER32.dll!PeekMessageW+0xba 
USER32.dll!PeekMessageW+0x89 
SHELL32.dll!SHChangeNotification_Unlock+0xd9f 
SHELL32.dll!Ordinal885+0x1407 
SHLWAPI.dll!SHRegGetUSValueW+0x306 
kernel32.dll!BaseThreadInitThunk+0xd 
ntdll.dll!RtlUserThreadStart+0x21

当我看到explorer.exe线程时,我确实注意到很少有人谈论ETW(Windows的事件跟踪),所以很明显explorer.exe使用了跟踪.

所以我决定尝试使用TraceView.exe来尝试监听explorer.exe跟踪.

问题是TraceView需要一些难以接受的东西…… pdbs,CTL文件和.TMF文件.我尝试使用Windows SDK附带的explorer.pdb,但是没有用.我没有在“命名提供者”中看到explorer.exe.我不知道在哪里找到explorer.exe的ctl或.TMF文件.

所以问题是:有没有办法从资源管理器中查看ETW跟踪消息?

或者我只是不打扰并回到古老的技术,一个接一个地禁用每个探险家的扩展,希望其中的一个. (更喜欢前者,因为我喜欢深入了解事物!)

我不知道你是否见过他们,但微软的Mark Russinovich(原来是最初编写Process Explorer的SysInternals)在他的博客上写了一篇关于使用Sysinternals工具诊断Windows问题的文章.

这个演示了他的过程,因为他试图追踪一个间歇性的资源管理器挂起(这几乎肯定与你的不同,但确实显示了他使用的过程)http://blogs.technet.com/markrussinovich/archive/2005/08/28/the-case-of-the-intermittent-and-annoying-explorer-hangs.aspx

他使用其他技术(包括从MS服务器中获取符号)来诊断Windows的慢速性能http://blogs.technet.com/markrussinovich/archive/2008/09/24/3126858.aspx

猜你在找的Windows相关文章