DbgView 無法開啟Capture Kernel問題


轉載自 : http://www.cnblogs.com/jiaochen/p/5581440.html

雖然不是自己調查的,但是驗證了作者的分析,確實是重啟后可以繼續使用。

 

 

dbgview 在windows 10 中關閉后再次打開時無法“capture kernel”


DbgView 是一個免費的用於抓取log 的工具,可以捕獲並輸出OutputDebugString()函數的輸出,以及輸出windows driver 中dbgprint 的log,對於windows driver 開發和調試是十分有幫助的。

但是該tool 已經很久不再更新了,最新的版本是V4.81 版本,是久遠的2012年12月份release 出來的,具體下載鏈接為:

https://technet.microsoft.com/en-us/sysinternals/debugview.aspx?f=255&MSPPError=-2147217396

 

目前Dbgview.exe 使用在Windows 10 下,會有一個小問題:

開啟“capture kernel” 后運行一次dbgview后關閉該AP,並再次打開時通常會無法再“capture kernel”。提示的error 如下圖:



這樣會導致DbgView 無法"Capture Kernel",除非重新啟動PC。這樣非常不方便。

 

在研究DbgView與“Dbgv.sys” 時發現有幾個要點:

1. Dbgview.exe 在啟動時,會在該exe中找到對應的resource,然后將這部分生成一個“Dbgv.sys”放在系統目錄下,然后啟動該sys。

2. 啟動成功后就會去delete 該“Dbgv.sys”文件。所以正常在win7 等系統中是無法看到“Dbgv.sys”這個文件的。

3. 當第二次運行dbgview 時,同樣會提取出“Dbgv.sys”,並重寫之前的文件(如果文件存在的話)。

4. 但是在win 10 中在步驟2總delete 這個文件時會失敗;而且在步驟3中進行重寫時也是失敗的。猜測Windows 10 是禁止重寫已經運行了的sys文件。

5. 在overwrite 失敗后,dbgview 認為不能正確運行“Dbgv.sys”,所以彈出上文的error message。

6. DbgView 在運行“Dbgv.sys” 時是創建並start 一個service “DBGVSVC”,但是比較奇怪的是在系統中並沒發現該service。

 

根據上述的分析,產生一些策略去嘗試避免文中所說的問題:

1. 在再次打開DbgView 前,嘗試找到“DBGVSVC” service,並stop service 后再運行DbgView,但是沒能找到“DBGVSVC” Service,該策略未生效;

2. 在再次打開DbgView 前,嘗試去刪除“Dbgv.sys” 文件,然后再運行DbgView,但是該文件未能找到有效的方法成功刪除,該策略未生效;

3. 偶然發現“Dbgv.sys” 竟然可以重命名,重命名該文件后再運行DbgView 就OK了。但是該方法的缺陷是需要重啟后刪除重命名后的文件,否則該文件會一直存在。這個方法對於不想使用我修改后的dbgview 的用戶來說,非常友善。

4. 反編譯DbgView 后,將dbgview 中重寫“Dbgv.sys” 失敗后的代碼改寫,就可以在windows 10 中繼續像在以前OS 中開心的玩耍了。修改后的FakeDbgView.exe 可以在https://pan.baidu.com/s/1o8TbqjC 下載。該版本是基於V4.81 版本 版本進行修改。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM