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