1. 直接輸入、更改、跟蹤、運行匯編程序 2. 觀(guān)察操作系統的內容;? 3. 查看ROM BIOS的內容;? 4. 觀(guān)察更改RAM內部的設置值;? 5. 以扇區或文件的方式讀寫(xiě)軟盤(pán)數據。? 在DEBUG中地址用段地址與段內地址來(lái)表示,而段地址可以明確地指出來(lái),也可以用一個(gè)段指示器(段寄存器)來(lái)代表,用段寄存器表示時(shí),其段地址就是此寄存器的內含值:? 如:用段地址和段內地址表示FOFF:0100? 用段寄存器和段內地址表示CSF:0100←CS指向F000? 下面列出了常用命令用法。 -A 地址 從指定地址開(kāi)始編寫(xiě)小匯編程序,按兩個(gè)回車(chē)鍵結束編輯 -U 地址 從指定地址開(kāi)始反匯編32字節的機器指令,缺省地址則從上一U命令繼續 -D 始址 終址 以16進(jìn)制/Asc字符對照方式顯示指定內存范圍的數據,每行顯示10H個(gè)字節 -E 地址 值表 用給出的值表(空格分隔)替換指定地址開(kāi)始的內存單元,例:-E 100 'v' 1F 'hello' -N 文件名 為后續的L/W命令約定所操作的文件名 -L 地址 將N命令所指定文件的內容讀入到指定內存位置。另,邏輯卷扇區直接讀:-L 地址 邏卷號 起始邏扇號 扇數 -W 地址 將BX-CX個(gè)字節的內存數據寫(xiě)入N命令指定的文件中。另,邏輯卷扇區直接寫(xiě):-W 地址 邏卷號 起始邏扇號 扇數 -R 寄存器名 顯示并允許修改指定寄存器的值 -G=始址 終址 執行指定內存中的機器指令程序 -T=地址 單步執行機器指令,缺省地址則從上一T命令繼續。另,繼續跟蹤m條指令:-T m 讀取c:卷的引導扇區,并保存到Boot.1文件中,并簡(jiǎn)單分析引導程序的前面幾條指令: -L 1000 2 0 1 -N boot.1 -R bx ;輸入0000 -R cx ;輸入0200 -W 1000 -U 1000 讀取第一個(gè)硬盤(pán)上的主引導扇區,并保存到MB.1文件中,在屏幕上顯示硬盤(pán)分區表數據: -A 100 yyyy:0100 mov dx,0080 yyyy:01xx mov cx,0001 yyyy:01xx mov ax,yyyy yyyy:01xx mov es,ax yyyy:01xx mov bx,1000 yyyy:01xx mov ax,0201 yyyy:01xx int 13 yyyy:01zz nop -G=yyyy:0100 01zz -N mb.1 -R bx ;輸入0000 -R cx ;輸入0200 -W 1000 -D 11be 11ff debugging命令 debugging命令概述 獲得路由器中交換的報文和幀的細節信息 用于調試信息 debugging命令使用注意事項 不使用debug命令監控正常的網(wǎng)絡(luò )運行 在網(wǎng)絡(luò )使用的低峰期使用 不要輕易使用類(lèi)似debugging all之類(lèi)的命令 使用debugging命令后,應立即以“undo debugging”命令終止debugging命令的執行。 Debugger "Debugger"這個(gè)詞按它的英文字面意思來(lái)講是這樣一種“裝置”(-er),這種裝置可以“消除”(De-)“系統中的缺陷”(bug)。然而事實(shí)上,迄今為止我們經(jīng)常使用到的"Debugger"只是用來(lái)幫助我們進(jìn)行Debug的工具,"Debugger"本身不能自動(dòng)完成"Debug"。我們可以回想一下我們是如何進(jìn)行Debug的,在進(jìn)行Debug的過(guò)程中,我們通過(guò)Debugger來(lái)完成以下工作: (1)監視“Debug對象”的狀態(tài); (2)控制“Debug對象”的運行; 這些工作可以為“發(fā)現Debug對象中存在的問(wèn)題”以及“對解決問(wèn)題方案的檢驗”提供有用的信息。 監控工作有時(shí)只需要由軟件就可以完成,有時(shí)不僅需要軟件支持,還需要硬件的支持。 Debugger除了被用來(lái)Debug,還被用來(lái)幫助我們理解“Debug的對象”內部結構,因為我們用到的Debugger能夠完成對“Debug對象”的監控工作,在監控的過(guò)程中可以獲取“Debug對象”動(dòng)態(tài)特征的信息,這對我們理解其結構是非常有用的。 關(guān)于更詳細的介紹和研究可以參考國人原創(chuàng )的《軟件調試》 ,這
[url= ]嫦娥二號直播[/url]
軟件測試的方法根據軟件工程的組織和實(shí)現方式,有很大差別,有些是比較技術(shù)化的方法,有些則是工程方法,主要分為: 黑盒測試方法群:等價(jià)類(lèi)劃分、邊界值、因果圖、基路徑法、專(zhuān)家測試法、smoking、場(chǎng)景測試等 白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調用測試和返回測試,需要結合等價(jià)類(lèi)和因果圖方法)等。
當在單元層面黑盒而在集成層面白盒時(shí),基本上兩類(lèi)方法就會(huì )有結合了,就會(huì )出現習慣上說(shuō)的灰盒測試(說(shuō)實(shí)話(huà),不做到純產(chǎn)品級開(kāi)發(fā),基本上都是用的灰盒測試)。
目前常用的調試方法有如下幾種:
· 試探法。調試人員分析錯誤的癥狀,猜測問(wèn)題的所在位置,利用在程序中輸出語(yǔ)句,分析寄存器、存儲器的內容等手段來(lái)獲得錯誤的線(xiàn)索,一步步地試探分析出錯誤所在。這種方法效率很低,適合于結構比較簡(jiǎn)單的程序。
· 回溯法。調試人員從發(fā)現錯誤癥狀的位置開(kāi)始,人工沿著(zhù)程序的控制流程往跟蹤代碼,直到找出錯誤根源為止。這種方法適合于小型程序,對于大規模程序于其需要回溯的路徑太多而變得不可操作。
· 對分查找法。這種方法主要用來(lái)縮小錯誤的范圍,如果已經(jīng)知道程序中的變量若干位置的正確取值,可以在這些位置上給這些變量以正確值,觀(guān)察程序運行輸出結果,如果沒(méi)有發(fā)現問(wèn)題,則說(shuō)明從賦予變量一個(gè)正確值開(kāi)始到輸出結果的程序沒(méi)有出錯,問(wèn)題可能在除此之外的程序中,否則錯誤就在所考察的這窨程序中,對含有錯誤的程序段再使用這種方法,直到把故障范圍縮小到比較牽診斷為止。
· 歸納法。歸納法就是從測試所暴露的問(wèn)題出發(fā),收集所有正確或不正確的數分析它們之間的關(guān)系,提出假象的錯誤原因,'用這些數據來(lái)證明或反駁,從而翟錯誤所在。
· 演繹法。根據測試結果,列出所有可能的錯誤原因。分析已有的數據,排除.能和彼此矛盾韻原因。對余下的原因,選擇可能性最大的,利用已有的數據完該假設,使假設更具體。用假設來(lái)解釋所有的原始測試結果,如果能解釋這一,則假設得以證實(shí),也就找出錯誤;否則,要么是假設不完備或不成立,要么有問(wèn)題。
一,簡(jiǎn)單調試方法:步驟
1,在程序中插入打印語(yǔ)句、優(yōu)點(diǎn)是能夠顯示程序的動(dòng)態(tài)過(guò)程,比較容易檢查源程序的有關(guān)信息。缺點(diǎn)是效率低,可能輸入大量無(wú)關(guān)的數據,發(fā)現錯誤帶有偶然性。
2,運行部分程序。有時(shí)為了測試某些被懷疑有錯的程序段,卻將整個(gè)程序反復執行許多次,在這種情況下,應設法使被測程序只執行需要檢查的程序段,以提高效率。
3,借助調試工具。目前大多數程序設計語(yǔ)言都有專(zhuān)門(mén)的調試工具,可以用這些工具來(lái)分析程序的動(dòng)態(tài)行為。
二,回溯法排錯。確定最先發(fā)現錯誤癥狀的地方,人工沿程序的控制流往回追蹤源程序代碼,直到找到錯誤或范圍。
三,歸納法排錯。是一種系統化的思考方法,是從個(gè)別推斷全體的方法,這種方法從線(xiàn)索(錯誤征兆出發(fā)),通過(guò)分析這些線(xiàn)索之間的關(guān)系找出故障。主要有4步:
(1)收集有關(guān)數據。收集測試用例,弄清測試用例觀(guān)察到哪些錯誤征兆,以及在什么情況下出現錯誤等信息。
(2)組織數據。整理分析數據,以便發(fā)現規律,即什么條件下出現錯誤,什么條件下不出現錯誤。
(3)導出假設。分析研究線(xiàn)索之間的關(guān)系,力求找出它們的規律,從而提出關(guān)于錯誤的一個(gè)或多個(gè)假設,如果無(wú)法做出假設,則應設計并執行更多的測試用例,以便獲得更多的數據。
(4)證明假設。假設不等于事實(shí),證明假設的合理性是極其重要的,不經(jīng)證明就根據假設排除錯誤,往往只能消除錯誤的征兆或只能改正部分錯誤。證明假設的方法是用它解釋所有原始的測試結果,如果能圓滿(mǎn)地解釋一切現象,則假設得到證明,否則要么是假設不成立或不完備,要么是有多個(gè)錯誤同時(shí)存在。
四,演繹法排錯 。設想可能的原因,用已有的數據排除不正確的假設,精化并證明余下的假設。
五、對分查找法。如果知道每個(gè)變量子啊程序內若干個(gè)關(guān)鍵點(diǎn)上的正確值,則可用賦值語(yǔ)句或輸入語(yǔ)句在程序中的關(guān)鍵點(diǎn)附近“注入”這些變量的正確值,然后檢查程序的輸出。如果輸出結果是正確的,則表示錯誤發(fā)生在前半部分,否則,不妨認為錯誤在后半部分。這樣反復進(jìn)行多次,逐漸逼近錯誤位置。
你好, 嵌人式系統已經(jīng)廣泛應用于人類(lèi)生活中,嵌入式系統中軟件的規模和復雜性正在迅速增加。這為嵌入式軟件產(chǎn)品創(chuàng )造了巨大的商業(yè)機會(huì ),同時(shí)也對嵌入式軟件的開(kāi)發(fā)技術(shù)和測試技術(shù)提出了新的挑戰。嵌入式系統必須依賴(lài)于高品質(zhì)的硬件和高性能的軟件,因此對于測試嵌人式系統而言,硬件測試和軟件測試都是至關(guān)重要的部分。嵌入式軟件測試的是保證軟件滿(mǎn)足需求規格說(shuō)明,與非嵌入式軟件的測試目的是一樣的。系統失效是系統沒(méi)有滿(mǎn)足—個(gè)或多個(gè)正式需求規范中所要求的需求項,嵌入式軟件有其特殊的失效判定準則。 而且嵌入式軟件對可靠性的要求比較高。安全性的缺陷往往會(huì )導致災難性的后果,即使是非安全性系統,由于大批量生產(chǎn)也會(huì )導致嚴重的經(jīng)濟損失。這就要求對嵌入式系統,包括嵌入式軟件、嵌入式硬件進(jìn)行嚴格的測試、確認和驗證。 一般來(lái)說(shuō),軟件測試有7個(gè)基本階段,即單元或模塊測試、集成測試、外部功能測試、回歸測試、系統測試、驗收測試、安裝測試。嵌入式軟件測試在4個(gè)階段上進(jìn)行,即模塊測試、集成測試、系統測試、硬件/軟件集成測試。前3個(gè)階段適用于任何軟件的測試,硬件/軟件集成測試階段是嵌入式軟件所特有的,目的是驗證嵌入式軟件與其所控制的硬件設備能否正確地交互。
嵌入式軟件測試環(huán)境 嵌入式軟件測試的測試環(huán)境主要有兩種:
1)目標環(huán)境測試:基于目標的測試測試全面有效,但是消耗較多的經(jīng)費和時(shí)間。
2)宿主環(huán)境測試:基于宿主的測試代價(jià)較小,但是有些對環(huán)境要求高的功能和性能宿主機無(wú)法模擬,測試無(wú)法實(shí)現。 目前的趨勢是把更多的測試轉移到宿主環(huán)境中進(jìn)行,把宿主環(huán)境測試無(wú)法實(shí)現的復雜和獨特功能放在目標環(huán)境測試。我們的工作重點(diǎn)是基于宿主環(huán)境的測試,基于目標環(huán)境的測試作為補充。
在兩個(gè)環(huán)境中可以出現不同的軟件缺陷,重要的是目標環(huán)境和宿主環(huán)境的測試內容有所選擇。在宿主環(huán)境中,可以進(jìn)行邏輯或界面的測試、以及與硬件無(wú)關(guān)的測試。在模擬或宿主環(huán)境中的測試消耗時(shí)間通常相對較少,用調試工具可以更快地完成調試和測試任務(wù)。而與定時(shí)問(wèn)題有關(guān)的白盒測試、中斷測試、硬件接口測試只能在目標環(huán)境中進(jìn)行。在軟件測試周期中,基于目標的測試是在較晚的“硬件/軟件集成測試”階段開(kāi)始的,如果不更早地在模擬環(huán)境中進(jìn)行白盒測試,而是等到“硬件/軟件集成測試”階段進(jìn)行全部的白盒測試,將耗費更多的財力和人力。
3 嵌入式軟件的測試工具 用于輔助嵌入式軟件測試的工具很多,下面對幾類(lèi)比較有用的有關(guān)嵌入式軟件 的測試工具加以介紹和分析。
3.1 內存分析工具 在嵌入式系統中,內存約束通常是有限的。內存分析工具用來(lái)處理在動(dòng)態(tài)內存分配中存在的缺陷。當動(dòng)態(tài)內存被錯誤地分配后,通常難以再現,可能導致的失效難以追蹤,使用內存分析工具可以避免這類(lèi)缺陷進(jìn)入功能測試階段。目前有兩類(lèi)內存分析工具——軟件和硬件的。基于軟件的內存分析工具可能會(huì )對代碼的性能造成很大影響,從而嚴重影響實(shí)時(shí)操作;基于硬件的內存分析工具價(jià)格昂貴,而且只能在工具所限定的運行環(huán)境中使用。
硬件系統的調試:嵌入式系統的調試包括硬件調試、軟件調試。硬件系統是軟件系統調
試的基本保障。如果不能確定硬件平臺的正確性,調試過(guò)程中就不知道是軟件系統出錯還是
硬件系統的錯誤。所以我們在調試軟件系統的時(shí)候要盡量確保硬件系統模塊的正確性。針對
目標平臺上的各個(gè)硬件模塊,我們通常采用逐一測試調試的方法進(jìn)行,通過(guò)常用的電子元件
的測試儀器,像萬(wàn)用表、示波器等進(jìn)行電氣參數的測試與調試。
軟件系統的調試 : 軟件調試一般是指保證硬件一切正常的情況下驗證程序執行的時(shí)
序是否正確,邏輯和結果是否與設計要求相符,能否滿(mǎn)足功能和性能要求等。
各種嵌入式設備都具有功能專(zhuān)一,針對性強的特點(diǎn)。因此其硬件資源不像Pc 機一樣齊
全,所以要在嵌入式設備上建立一套開(kāi)發(fā)系統是不現實(shí)的。在開(kāi)發(fā)嵌入式系統時(shí),一般都采
用交叉開(kāi)發(fā)(Cross Developping) 的模式,即:開(kāi)發(fā)系統是建立在硬件資源豐富的Pc 機(或者工作站)—h,通常稱(chēng)其為宿主機(Host),應用程序的編輯、編譯、鏈接等過(guò)程都是在Hast 上完成的,而應用程序的最終運行平臺卻是和Host 有很大差別的嵌入式設備,通常稱(chēng)其為目標
機(Target),調試在二者間聯(lián)機交互進(jìn)行。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.392秒