關(guān)于WinCE的調試技術(shù)簡(jiǎn)介之調試程序
模擬器運行后,就可以調試程序了。使用Evc調試和VC++很類(lèi)似??梢栽O置斷點(diǎn),點(diǎn)擊調試后就在工具欄中出現調試按鈕,可以進(jìn)行單步調試,查看線(xiàn)程和模塊信息,以及捕獲異常。
本文引用地址:http://dyxdggzs.com/article/201609/304645.htmPB中啟動(dòng)模擬器后,可以使用Kerneldebugger查看系統內部信息。使用target control窗口進(jìn)行內核調試。這是一個(gè)命令行模式的shell:
Welcome to the Windows CE Shell. Type ? for help.
Windows CE>
通過(guò)?命令可以查看支持的命令選項??梢圆榭聪到y進(jìn)程和線(xiàn)程信息,內存信息,可以啟動(dòng)新的進(jìn)程和關(guān)閉之。還可以?huà)炱鹪O備等。也可以在鼠標右鍵的彈出菜單中選擇相應的項,通過(guò)特定窗口察看,比命令方便一些。在輸出窗口中會(huì )顯示每一個(gè)程序運行時(shí)加載的DLL庫。
具體的調試情況需要在實(shí)踐中不斷摸索。下面我就介紹一下evc和pb中均提供的十大遠程調試工具。
1.Remote File Viewer
遠程文件瀏覽器。
這個(gè)工具類(lèi)似于Windows Explorer,可以顯示W(wǎng)inCE目標設備上的目錄層次和文件。通過(guò)這個(gè)工具,可以在主機和目標機之間互傳文件,也可以刪除目標設備上的文件。使用這個(gè)工具,方便了程序的下載和調試。
2.Remote Process Viewer
遠程進(jìn)程查看工具
這 個(gè)工具可以查看WinCE上所有運行的進(jìn)程以及它的現成的信息。包括進(jìn)程的名稱(chēng),PID,進(jìn)程基本優(yōu)先級,進(jìn)程的線(xiàn)程數,進(jìn)程基地址和訪(fǎng)問(wèn)鍵值,窗口名 稱(chēng);線(xiàn)程ID,線(xiàn)程的當前進(jìn)程ID(因為有的線(xiàn)程需要其它的進(jìn)程來(lái)加載模塊),線(xiàn)程優(yōu)先級,線(xiàn)程訪(fǎng)問(wèn)鍵值;模塊名稱(chēng)和ID,模塊的進(jìn)程使用計數,全局使用 計數,基地址和大小,模塊的句柄和路徑名稱(chēng)等。
在這個(gè)工具中可以看到,每個(gè)進(jìn)程的地址空間是32MB,核心進(jìn)程NK.exe從4000 000開(kāi)始,所以系統將第0和1兩個(gè)槽來(lái)加載當前進(jìn)程。在WinCE4.0以前只有第0個(gè)槽?,F在的第1個(gè)槽用于當前進(jìn)程使用的DLL,并且保證不和其它進(jìn)程使用的DLL發(fā)生沖突。
3.Remote Zoomin
這個(gè)工具可以抓取目標設備的屏幕圖像,可以保存為位圖文件或到剪切板上。
4.Remote Registy Editor
遠程注冊表編輯器
這個(gè)工具可以顯示主機和目標機的注冊表,可以編輯注冊表或導出注冊表。對于查看目標設備的驅動(dòng)程序配置信息很有用。網(wǎng)上也有下載WinCE下的注冊表編輯器。
5.Remote Heap Walker
遠程堆查看器
這個(gè)工具可以列出目標機上所有運行的進(jìn)程和他們的堆的使用情況。每個(gè)進(jìn)程開(kāi)始時(shí),系統只提供192KB的堆,且不立刻提供物理內存。程序可以申請更大的堆。WinCE分配的堆是不能移動(dòng)的,所以要頻繁的分配和釋放內存,最好自己預先分配一個(gè)大堆,用完后釋放。
這個(gè)工具顯示每個(gè)進(jìn)程分配的堆ID,堆的塊地址和大小以及堆的創(chuàng )建標志。HF32_DEFAULT表示是系統默認創(chuàng )建的堆。塊的標志有fixed和free兩種。前者表示不能釋放,后者表示可以釋放,這是給內存管理單元看的 。
評論