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