日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

变量dwNKDrWatsonSize

發布時間:2025/3/14 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 变量dwNKDrWatsonSize 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要生成錯誤報告的dump文件,需要至少有128K的內存。OAL層初始化函數OEMInit中,變量dwNKDrWatsonSize就是記錄這個內存的大小。內核會從主內存區域的最后,保留出這一塊內存。設置編譯環境變量SYSGEN_WATSON_DMPGEN,讓鏡像包含有錯誤報告生成器的功能。

?

注冊表中,有保存錯誤報告生成器的設置,如下:

?

錯誤報告傳輸驅動(Error Report Transfer Driver),會把這些設置放到上述的保留內存中。那么錯誤報告生成器就能創建正確的內容。這些信息告訴它那里生成報告和生成何種報告。上述注冊表設置是使用system dump,使用4倍保留內存的磁盤空間去存放報告。

?

Dump文件的各個類型,有統一的格式:

1、? context dump

4K到64K大小

crash系統的信息

發生錯誤線程的context記錄

發生錯誤線程的模塊列表

發生錯誤線程的線程列表

發生錯誤線程的調用棧

發生錯誤線程中,發生錯誤位置上下64字節的內存內容

發生錯誤線程的堆棧,最大保存64K

?

2、? system dump

64K以上

Context dump的所有信息

所有線程的context記錄和調用棧

所有模塊、進程、線程的列表

發生錯誤線程中,發生錯誤位置上下2K字節的內存內容

Crash時刻中的全局變量

?

3、? complete dump

所有使用中內存的內容,至少64K大小

Context dump的所有信息

?

錯誤報告生成的文件中,開頭是一個MINIDUMP_HEADER結構體。后面是一些MINIDUMP_DIRECTORY的入口,描述的是數據類型,如系統信息和異常信息等。數據的大小也會記錄下來,還有數據存放的偏移地址。詳細參考$(_COMMONOAKROOT)\INC\DwCeDump.h中內容。

?

錯誤報告傳輸驅動,負責把設置信息從注冊表中,放到保留內存中。同時把生成的文件,復制到可持續保存的介質中(nandflash、SD)。接著它還要通過注冊表,啟動上傳報告的客戶端程序。

鏡像要有錯誤報告傳輸驅動,需要設置編譯環境變量SYSGEN_WATSON_XFER。在注冊表中,還要設置相關屬性。如下,錯誤報告傳輸驅動設置為:每5分鐘喚醒一次,優先級是249。

?

錯誤報告控制面板,也可設置相關屬性,包括:

1、? 打開、關閉錯誤報告(有顯示的設備中,錯誤報告默認是打開的。無顯示設備中,模式是關閉)

2、? 設置dump文件的可用空間大小

3、? 打開用戶通知對話框

?

需要使用錯誤報告控制面板,編譯時候要設置SYSGEN_WATSON_CTLPNL。

錯誤報告控制面板的注冊表內容,存放在HKLM\System\ErrorReporting\DumpSettings和路徑HKLM\System\ErrorReporting\UploadSettings中。

?

報告上傳的客戶端,負責把錯誤報告發送到watson.microsoft.com網站上。也可以發送到其他網站,但是需要修改代碼,在(_PUBLICROOT) \WCESHELLFE\OAK\WATSON\DWUI\ DWUIDLGS.CPP。另外,(_PUBLICROOT) \COMMON\OAK\INC\DWPUBLIC.H中,需要定義一個有效的服務器VALID_RESPONSE_SERVER。

?

當應用程序crash后,Dr.Watson開始工作,調用GenerateDumpFileContent函數。這個函數完成大部分的工作,它首先通過設置高優先級,來確保Dr.Watson不被搶占。然后搜集系統、模塊、異常、進程和線程等信息,放到文件的CRASH_DATA結構體中。當信息收集完畢,它會恢復到原來狀態,寫入crash信息,生成dump文件。

?

在Dr.Watson的幫助下,福爾摩斯們就能通過錯誤報告工具,去分析和調試程序了。

?

?

還可以通過以下方式進行調試:

一、使用PB

1、開啟錯誤報告, 設備上的“開始”-〉“設置”-〉“系統”-〉“錯誤報告”-〉“啟用錯誤報告”。

?

2、日常使用(不連接KITL)時,程序發生崩潰,會提示是否把錯誤報告給微軟,此時選擇“發送”(注:如果選擇“不發送”下面的步驟就不要看了)。這樣會生成 “ce+日期+序號.kdmp”文件。

?

3、連接USB ActiveSync,在設備windows\system\dumpfiles下會多一個“ce月日年-序號”的目錄(例如:“Ce032406-1” )其下可以發現 ce+日期+序號.kdmp文件 和 cedevice.log 文件。

?

4、用 Remote File Viewer (PB或VS2005自帶的遠程工具)將這兩個文件download回到電腦上。注意用ActiveSync是無法直接拷貝的,Copy會被告知 AccessDenied。

?

5、用PB-〉File Open打開 xxx.kdmp 文件,之后點擊 Target -〉 Attach 程序就可以恢復到崩潰時候的狀態了。可以看到程序崩潰時候的 call stack/ memory / process 調試了。(至少能定位到時哪個程序調用的時候崩潰了)

?

二、使用UIDumpViewer.exe

微軟還提供了一個調試工具,可以在PC上直接查看dump文件,鏈接地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=76B18828-09E4-4A87-A8E4-A06F2352B754&displaylang=en&displaylang=en

?

三、根據輸出的提示信息,使用CrashFinder

這個方式需要有源代碼。

編譯工程后,按照出錯的提示信息,add一個出錯的文件(exe、dll)。

輸入crash地址,工具就會列出具體信息。

下載地址:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2006/04/19/crashfinder-returns.aspx

http://www.microsoft.com/msj/0498/bugslayer0498.aspx

?

http://www.windowsfordevices.com/articles/AT7568439504.html

已投稿到: 排行榜 閱讀(95)|評論(1)|收藏(0)|打印|舉報

轉載于:https://www.cnblogs.com/Torres_fans/archive/2009/10/11/1580757.html

總結

以上是生活随笔為你收集整理的变量dwNKDrWatsonSize的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。