這兩天在幾家客戶那裏介紹微軟的Windows Azure,有幾個精彩的demo我還錄製了視頻。沒成想迅雷播放器在個人Windows 10預覽版上彷佛得了水土不服之症,每次打開視頻,最起碼要卡10~15秒鐘才正常開始播放,讓我有一種很強的挫敗感。web
做爲一名IT技術人員,天然不能無視這個故障,也不能簡單地重裝其餘播放器。----深刻其虎穴,捉得虎子,纔是硬道理。安全
Windows工程師手邊最好的排錯工具,固然是Sysinternals Suite。有性能問題,首先得找Process Monitor,因此趕忙用來抓迅雷hang的時候,背後都發生了什麼。服務器
結果很使人沮喪,檢查的結果,除了發現如下大量訪問CodePage註冊表鍵值的行爲,並無發現太多有用的信息。
那就只能用Procdump來抓取迅雷hang時背後所發生的事情了。Procdump能夠基於特定事件自動生成進程的dump文件,例如在進程佔用指定數量的CPU、或者佔用指定數量的內存時自動抓dump。在這裏咱們指定讓Procdump在迅雷hang住的時候自動抓dump:微信
procdump.exe" -h -n 2 xmp xmp.dump框架
其中的-h是發現進程hang時能夠自動抓dump,默認是5秒。-n是指定抓多少個dump,xmp是迅雷的進程名稱,而最後是dump文件名稱。ide
很快就能夠生成dump文件,而後用Windbg將其打開進行調試,一開始會提示不少dll等文件找不到符號文件,這是正常的,微軟的符號服務器不可能有迅雷的符號文件。從如下的線程堆棧能夠看出,當XmpUtility中的某個函數調用ieframe!IEGetProtectedModeCookie函數時發生了問題。函數
接下來能夠看到Windbg提示ieframe!IEGetProtectedModeCookie的問題。盆盆推斷這是由於迅雷播放器須要調用IE框架顯示所謂的片庫等內容,因爲代碼有問題,和Windows 10的IE保護模式有衝突。
工具
要臨時解決這個問題,很簡單,只需禁用IE保護模式,或者把迅雷的網站加入到可信任站點(可信任站點默認禁用IE保護模式)。可是須要注意,禁用IE保護模式,會提升IE的安全風險!性能
因此最好的方法,是迅雷工程師能儘快修改代碼,以便能和IE保護模式兼容。我已經給迅雷發了微博消息,可是到今天爲止已經2個月,還沒獲得回覆。網站
若是您以爲華來四還不錯,那就微信掃描如下的二維碼關注吧。也能夠直接添加微信公衆號:sysinternal。