在根據MSDN的文件中,當錯誤產生時,大約有三種(其實不只,但是這邊就只先紀錄三種)。
在下摘錄Edwin兄的在這篇文章的解釋:
而Windows Mobile產生的格式如下,小素將附上MSDN裡面的定義與介紹。
‧
Exception type: Thread=%x Proc=%x ‘%s‘ AKY=%x PC=%x(%s+%x) RA=%x(%s+%x) BVA=%x FSR=%x
1.Thread = PTHREAD address
2.Proc = PPROCESS address ‘Process name’
3.AKY = Access key
MSDN中對AKY的解釋是:
Process slot bitmask corresponding to the processes the excepting thread has access to. For example, the above exception is 0x00000005, which corresponds to:
Nk.exe 0x00000001
Shell32.exe 0x00000004
簡單的說,就是32個slot都會有一個對應的Key,當意外產生時,我們可以藉由出現的數值去推斷這個錯誤(意外)產生有哪些程序去參與。
4.PC = Program counter (Module name + Offset)
5.RA = Return address (Module name + Offset)
6.FSR = Fault status register
MSDN中對FSR的解釋是:
The FSR represents several flags that will help you understand the nature of your exception. For ARM devices the following flags can be set:
#define FSR_ALIGNMENT 0x01
#define FSR_PAGE_ERROR 0x02
#define FSR_TRANSLATION 0x05
#define FSR_DOMAIN_ERROR 0x09
#define FSR_PERMISSION 0x0D
Using the example above gives us:
FSR=00000007 == FSR_PAGE_ERROR | FSR_TRANSLATION
簡單的說就是對錯誤或是意外產生的分類,從FSR中,我們可以發現哪幾種類型的錯誤再次的意外中出現。
以上就是對Windows Mobile 6錯誤的簡單介紹。
沒有留言:
張貼留言