在debug driver時,我們經常需要用到kernel debug來抓取log,但是如果沒有kernel debug,如何來抓取debug log呢?
方法之一就是將log寫到記憶體,在bsod時,抓取kerenl memory dump檔案進行分析,這裡記錄下這兩個命令,用來查詢記憶體塊,寫記憶體到檔案。
1,!poolfind tag
2,.writemem filename range
舉例說明下吧,譬如在driver中,用exallocatepoolwithtag分配了一段0x1000長度的記憶體,tag為「tset",則在windbg視窗可以通過
!poolfind test 來找到這段記憶體塊,會顯示起始位址和長度資訊,假設是0xf0000000,長度為0x1000。
*f0000000 :large page allocation, tag is test, size is 0x1000 bytes
.writemem c:\test.log 0x20000000 l1000
則會將上述長度的記憶體寫到檔案c:\test.log中,可以直接檢視log的內容了。
具體cmd可以參考:
!poolfind
.writemem
WinCE OAL中的Memory函式介紹
在bsp開發中經常會用到實體地址與虛擬位址的轉換,一般都是基於實體地址獲得相應的虛擬位址來訪問硬體。在wince6.0中,可以在wince600 platform common src inc oal memory.h檔案中找到相關的操作函式,這些函式用來虛擬位址與實體地址之間的轉換,它們都是基於o...
WinCE OAL中的Memory函式介紹
在 bsp開發中經常會用到實體地址與虛擬位址的轉換,一般都是基於實體地址獲得相應的虛擬位址來訪問硬體。在 wince6.0 中,可以在 wince600 platform common src inc oal memory.h 檔案中找到相關的操作函式,這些函式用來虛擬位址與實體地址之間的轉換,它們...
WinCE OAL中的Memory函式介紹
在bsp開發中經常會用到實體地址與虛擬位址的轉換,一般都是基於實體地址獲得相應的虛擬位址來訪問硬體。在wince6.0中,可以在wince600 platform common src inc oal memory.h檔案中找到相關的操作函式,這些函式用來虛擬位址與實體地址之間的轉換,它們都是基於o...