版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十五章WindowsCEWindowsCE提供了強(qiáng)大的原始碼的偵錯(cuò)工具,它被整合在從系統(tǒng)開發(fā)到應(yīng)用軟件開發(fā)的多個(gè)工具中。WindowsCE將偵錯(cuò)分為多個(gè)級(jí)別:在目標(biāo)程序與WindowsCE原始程序代碼中內(nèi)嵌的偵錯(cuò)用程序代碼;用Emulator支持軟件仿真本章主要從使用者的角度介紹WindowsCE的偵錯(cuò)器,考慮到篇幅與實(shí)用目標(biāo),對(duì)于WindowsCE中的偵錯(cuò)機(jī)制不作詳述。WindowsCE的整合開發(fā)環(huán)境(IDE)具有多種工具,允許使用者徹底地測(cè)試并偵錯(cuò)平臺(tái)及應(yīng)用程序的偵錯(cuò)偵錯(cuò)器控制一個(gè)操作系統(tǒng)映像的行為,由此映像的性能來(lái)為使用者提供訊息:使用者可以利用偵錯(cuò)器將配置裝置連接所需的所有功能整合起來(lái),并將映像到一個(gè)目標(biāo)裝置上,從而并偵錯(cuò)一個(gè)操作系統(tǒng)映像。這個(gè)整合使偵錯(cuò)器能夠控制一個(gè)操作目標(biāo)偵錯(cuò)訊息??梢允褂脗慑e(cuò)器來(lái)偵錯(cuò)WindowsCE中的應(yīng)用程序代碼,如果平臺(tái)設(shè)置buildsetting時(shí)選擇了enablekerneldebugging,偵錯(cuò)器就會(huì)自動(dòng)啟動(dòng)。應(yīng)用程序偵錯(cuò)器與偵錯(cuò)器不同,它僅僅控制一個(gè)運(yùn)行在已的操作系統(tǒng)映像上的一個(gè)應(yīng)用程序。當(dāng)這個(gè)應(yīng)用程序運(yùn)行在擴(kuò)展的偵錯(cuò)接口擴(kuò)展的偵錯(cuò)接口允許終端使用者通過(guò)使用一個(gè)第三仿真器仿真器是一個(gè)仿真支持WindowsCE平臺(tái)的硬件行為的工具。通過(guò)仿真器,使用者可以設(shè)計(jì)和建立一個(gè)基于WindowsCE的平臺(tái),并 接后,可以完成諸如一個(gè)到目標(biāo)機(jī)器上、目標(biāo)裝置之上的處置上,則上的按鈕和工具窗口中的一些選單項(xiàng)就會(huì)處于活躍狀 平臺(tái)管理器平臺(tái)管理器是基于WindowsCE平臺(tái)的開發(fā)工作站間通訊的一種技術(shù)。平臺(tái)管理器允許開發(fā)工具并連接到獨(dú)立于的Builder中的層上的連接,也就是層連接。WindowsCE操作系統(tǒng)提供了一個(gè)逐步操作的指南,來(lái)建立、偵錯(cuò)運(yùn)行時(shí)的操作Target下的Download/Initialize項(xiàng)),操作系統(tǒng)映像,在的過(guò)程中,IDE中會(huì)有一個(gè)框顯示過(guò)程中的訊息,后屏幕會(huì)出現(xiàn)一個(gè)新的工圖15.1 偵錯(cuò)即Debug選單下的StopDebugging選項(xiàng),選擇此項(xiàng)停止 偵錯(cuò)即Debug選單下的ShowNextStatement選項(xiàng),選擇此項(xiàng)顯示指令指針的原即Debug選單下的StepInto、StepOver、StepOut、RuntoCursor選即Debug選單下的QuickWatch選項(xiàng),當(dāng)偵錯(cuò)一個(gè)工程且處于break此選項(xiàng)才可用,點(diǎn)擊后會(huì)彈出一個(gè)框,在此框中可以檢測(cè)一個(gè)變量或表達(dá)式的值、修改一個(gè)變量的值、或?qū)⒁粋€(gè)變數(shù)加到WatchWindow中。值得注意的是CurrentValue表項(xiàng)中一次只能顯示一個(gè)變量或表達(dá)式,如果在Expression 覆蓋。各個(gè)輸入按鈕說(shuō)明如下:AddWatch按鈕:將變量或表達(dá)式加入到WatchWindow中,如果WatchClose按鈕:關(guān)閉框,并不做任何更動(dòng)彈出或隱藏WatchWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏VariablesWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏RegistersWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。都是彈出或隱藏MemoryWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏CallStack(堆棧呼叫)窗口(詳細(xì)請(qǐng)見(jiàn)如下介紹)。x=1;y=7;z=過(guò)使用此窗口,可以在任何指令處設(shè)置斷點(diǎn),如果在此窗口中使用了StepInto或StepOver指令,則偵錯(cuò)器會(huì)一條指令一條指令的執(zhí)行程序,而不是一行、一彈出或隱藏ListNearestSymbolWindow。彈出或隱藏AdvancedMemoryWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏ProcessesWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏ThreadsWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。彈出或隱藏ModulesandSymbolsWindow(詳細(xì)請(qǐng)見(jiàn)如下介紹)。偵錯(cuò)過(guò)程中可以應(yīng)用許多框來(lái)追蹤變量的值、處理程序執(zhí)行緒的執(zhí)行情況WatchWatchWindow窗口如圖15.2點(diǎn)擊按鈕之后會(huì)出現(xiàn)此窗口,使用此觀察窗口可以指定希望在偵錯(cuò)程序的下有四個(gè):Watch1,Watch2,Watch3和Watch4。每一個(gè)卷標(biāo)都能以表格中,而將和一個(gè)框相關(guān)的變量放在另一個(gè)窗口中。當(dāng)偵錯(cuò)此窗口時(shí)可以使用第一個(gè),而偵錯(cuò)此框時(shí)使用第二個(gè)。當(dāng)將一個(gè)數(shù)組或是對(duì)象、結(jié)構(gòu)變量放在觀察窗口中時(shí),“+”或者“-”邏輯欄會(huì)顯示在Name欄中,可圖15.2WatchVariablesVariablesWindow如圖15.3圖15.3Variables如果一條語(yǔ) 了多行,則此卷標(biāo)顯示和此語(yǔ)句相關(guān)的行變量,但是最多10值),但是不能增加變量或表達(dá)式到VariablesWindow中,只能使用WatchMemory圖15.4MemoryWindow可以在某一行中間設(shè)置一個(gè)插入點(diǎn),則MemoryWindow每次顯示變量的上下文時(shí)都會(huì)從這一行開始。也可以從EditorWindow中選擇一個(gè)變量名或是表達(dá)式拖到MemoryWindow中,則這個(gè)變量就會(huì)被顯示,從此項(xiàng)目被放置的行開在Address:框中顯示內(nèi)存中一個(gè)可查詢的數(shù)據(jù)的地址。在此窗口中點(diǎn)擊右ByteFormat:用字節(jié)形式顯示內(nèi)存訊息,例如:000AFE32ShortHexFormat:用短的十六進(jìn)制形式顯示內(nèi)存訊息,例如:000AFE32LongHexFormat:用長(zhǎng)的十六進(jìn)制形式顯示內(nèi)存訊息,例如:000AFE32Toolbar:顯示addressHideRegistersRegistersWindow如圖15.5圖15.5Registers此窗口顯示CPU緩存器。每一個(gè)CPU都有一組的緩存器。除了一些標(biāo)記之外,可以對(duì)任何緩存器的值進(jìn)行修改(在WatchWindow中),只有十六進(jìn)FloatingPointRegisters:顯示的浮點(diǎn)緩存器HideCallStackCallStackWindow如圖15.6圖15.6CallStack在偵錯(cuò)過(guò)程中,此窗口顯示目前函數(shù)呼叫的callstack。當(dāng)一個(gè)函數(shù)被呼叫時(shí),它被壓在堆棧頂。當(dāng)函數(shù)回傳時(shí),它從堆棧頂放出。CallStackWindow顯示了堆序代碼顯示在反編譯窗口中。追蹤函數(shù)的程序代碼會(huì)改變VariablesWindow和其它偵錯(cuò)窗口中的函數(shù)訊息,但是并不修改要執(zhí)行的下一條語(yǔ)句,也不修改 ,只留下目前 到OutputWindow中的AutoLogonStep:在每一步偵錯(cuò)后,自動(dòng)將此窗口中的數(shù)據(jù)格式化并 GoToCodeInsert/RemoveBreakpoint:在反編譯窗口中,在光標(biāo)所在的那一行設(shè)置EnableBreakpoint:讓一個(gè)原先不活躍的斷點(diǎn)活躍。RuntoCursor:執(zhí)行到光標(biāo)所在處并暫停。ParameterValues:顯示CallStackWindow中函數(shù)的參數(shù)值。ParameterTypes:顯示CallStackWindow中函數(shù)的參數(shù)的類型。HexadecimalDisy:將選中的值變成十六進(jìn)制。AdvancedMemory圖15.7AdvancedMemoryStartAddressRange(inbytes):輸入從StartAddressData:輸入由StartAddress和Range所限制的想要搜索的數(shù)據(jù),Data必須是所Move欄:將一塊內(nèi)存的數(shù)值從開始地址移動(dòng)到目標(biāo)地StartAddressRange(inbytes):從StartAddressStopMoveFill欄:用所給數(shù)值填充一塊內(nèi)StartAddressRange:輸入從StartAddressData:想要在由StartAddress和Range確定的位置中填充的數(shù)值,必須是選StopFillProcessesProcessesWindow如圖15.8圖15.8ProcessesProcessNameProcessaddressAccessKey:顯示執(zhí)行緒所需的存取程序地址空間的存取鍵,直接與程序的索引相對(duì)應(yīng)。ProcessHandleNameTlsUseL32b:顯示前32個(gè)插槽中在使用的TLS的位TlsUseH32b:顯示后32個(gè)插槽中在使用的TLS的位CmdLine指向程序開始令列的指標(biāo)ThreadsThreadsWindow如圖15.9圖15.9ThreadsThreadStateRunningBlockdAccessKeyhCurProcKernelTime:執(zhí)行緒在模式下所消耗的CPU時(shí)間UserTime:執(zhí)行緒在使用者模式下所消耗的CPURunab(abletorun)、RunBlkd(abletorun,butblocked)、RunNeeds(needstoUmodeKmode:模式UsrBlkdKernelTime:執(zhí)行緒在模式下所消耗的CPU時(shí)間SleepCountSuspendCountStackBaseStkLowBndCreatTimeH:顯示執(zhí)行緒創(chuàng)造時(shí)間的高64ModulesandSymbolsModulesandSymbolsWindow如圖15.10圖15.10ModulesandSymbols的名字、一個(gè)值,或者一個(gè)內(nèi)存地址(相對(duì)的或)。Symbol是由ImageAddressRangeRelocatedDataAddressRangeStatus:有如下兩種模塊的偵錯(cuò)symbolLoaded:偵錯(cuò)器已經(jīng)安裝了偵錯(cuò)symbolUnloaded:偵錯(cuò)器還沒(méi)有安裝偵錯(cuò)symbolPath:在平臺(tái)式計(jì)算機(jī)中的模塊的路徑PDBPath:在連
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025北京工業(yè)大學(xué)聘用制人員招聘1人備考題庫(kù)(第十八批)完整參考答案詳解
- 2026河南新鄉(xiāng)市獲嘉縣新時(shí)代學(xué)校教師招聘?jìng)淇碱}庫(kù)及答案詳解(新)
- 2026河南鄭州科創(chuàng)學(xué)校小學(xué)部教師招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 企業(yè)績(jī)效考核制度制定方案
- 2026年珠寶設(shè)計(jì)行業(yè)專項(xiàng)技能認(rèn)證試題及答案
- 2026年鍋爐安全管理員水質(zhì)處理技術(shù)試卷及答案
- 2026年人民調(diào)解員法律知識(shí)競(jìng)賽試題及答案
- 醫(yī)院感染控制制度及日常監(jiān)督管理辦法
- 2025年制藥工程藥劑學(xué)考試試題及答案
- 小提琴考級(jí)曲目選擇策略試題及答案
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人筆試備考試題及答案解析
- 2025-2026學(xué)年遼寧省葫蘆島市連山區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 上海市松江區(qū)2026屆初三一模物理試題(含答案)
- 小學(xué)六年級(jí)英語(yǔ)2026年上學(xué)期語(yǔ)法改錯(cuò)綜合真題
- 2026長(zhǎng)治日?qǐng)?bào)社工作人員招聘勞務(wù)派遣人員5人備考題庫(kù)完美版
- 護(hù)理核心制度內(nèi)容精要
- 湖南省婁底市期末真題重組卷-2025-2026學(xué)年四年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- 光伏板清洗施工方案
- 閱讀理解體裁與命題方向(復(fù)習(xí)講義)-2026年春季高考英語(yǔ)(上海高考專用)
- 指南抗菌藥物臨床應(yīng)用指導(dǎo)原則(2025版)
- 2025年華僑生聯(lián)考試題試卷及答案
評(píng)論
0/150
提交評(píng)論