濟南李大媽
“BUG”的由來:Bug一詞的原意是“臭蟲”或“蟲子”。但是現(xiàn)在,在電腦系統(tǒng)或程序中,如果隱藏著的一些未被發(fā)現(xiàn)的缺陷或問題,人們也叫它“Bug”,這是怎么回事呢?原來,第一代的計算機是由許多龐大且昂貴的真空管組成,并利用大量的電力來使真空管發(fā)光??赡苷怯捎谟嬎銠C運行產(chǎn)生的光和熱,引得一只小蟲子?Bug?鉆進了一支真空管內(nèi),導致整個計算機無法工作。研究人員費了半天時間,總算發(fā)現(xiàn)原因所在,把這只小蟲子從真空管中取出后,計算機又恢復正常。后來,Bug這個名詞就沿用下來,表示電腦系統(tǒng)或程序中隱藏的錯誤、缺陷或問題。與Bug相對應,人們將發(fā)現(xiàn)Bug并加以糾正的過程叫做“Debug”,意即“捉蟲子”或“殺蟲子”。遺憾的是,在中文里面,至今仍沒有與“Bug”準確對應的詞匯,于是只能直接引用“Bug”一詞。雖然也有人使用“臭蟲”一詞替代“Bug”,但容易產(chǎn)生歧義,所以推廣不開。所謂“(Bug)”,是指電腦系統(tǒng)的硬件、系統(tǒng)軟件(如操作系統(tǒng))或應用軟件(如文字處理軟件)出錯。硬件的出錯有兩個原因,一是設計錯誤,一是硬件部件老化失效等。軟件的錯誤全是廠家設計錯誤。那種說用戶執(zhí)行了非法操作的提示,是軟件廠商不負責的胡說八道。用戶可能會執(zhí)行不正確的操作,比如本來是做加法但按了減法鍵。這樣用戶會得到一個不正確的結果,但不會引起bug發(fā)作。軟件廠商在設計產(chǎn)品時的一個基本要求,就是不允許用戶做非法的操作。只要允許用戶做的,都是合法的。用戶根本就沒有辦法知道廠家心里是怎么想的,哪些操作序列是非法的。從電腦誕生之日起,就有了電腦BUG。第一個有記載的bug是美國海軍的編程員,編譯器的發(fā)明者格蕾斯·哈珀(GraceHopper)發(fā)現(xiàn)的。哈珀后來成了美國海軍的一個將軍,領導了著名計算機語言Cobol的開發(fā)。1945年9月9日,下午三點。哈珀中尉正領著她的小組構造一個稱為“馬克二型”的計算機。這還不是一個完全的電子計算機,它使用了大量的繼電器,一種電子機械裝置。第二次世界大戰(zhàn)還沒有結束。哈珀的小組日以繼夜地工作。機房是一間第一次世界大戰(zhàn)時建造的老建筑。那是一個炎熱的夏天,房間沒有空調(diào),所有窗戶都敞開散熱。突然,馬克二型死機了。技術人員試了很多辦法,最后定位到第70號繼電器出錯。哈珀觀察這個出錯的繼電器,發(fā)現(xiàn)一只飛蛾躺在中間,已經(jīng)被繼電器打死。她小心地用攝子將蛾子夾出來,用透明膠布帖到“事件記錄本”中,并注明“第一個發(fā)現(xiàn)蟲子的實例?!盵1]從此以后,人們將計算機錯誤戲稱為蟲子(bug),而把找尋錯誤的工作稱為(debug)。程序中隱藏的功能缺陷或錯誤。由于現(xiàn)在的軟件復雜程度早已超出了一般人能控制的范圍,如Win95、Win98這樣的較成熟的操作系統(tǒng)也會不定期地公布其中的Bug。如何減少以至消滅程序中的Bug,一直是程序員所極為重視的課題。debug就是由bug衍生出的詞,意思就是解決BUG。
彡鈖赱辷箏
debug是一種操作程序,我們現(xiàn)在就來了解一下它的用法是什么?下面是我給大家整理的debug是什么意思,供大家參閱!
消除故障
DEBUG是一種計算機程序。馬克2號(Harvard Mark II)編制程序的葛麗絲·霍波(Grace Hopper)是一位美國海軍準將及計算機科學家,同時也是世界最早的一批程序設計師之一。有一天,她在調(diào)試設備時出現(xiàn)故障,拆開繼電器后,發(fā)現(xiàn)有只飛蛾被夾扁在觸點中間,從而“卡”住了機器的運行。于是,霍波詼諧的把程序故障統(tǒng)稱為“臭蟲(BUG)”,把排除程序故障叫DEBUG,而這奇怪的“稱呼”,竟成為后來計算機領域的專業(yè)行話。如DOS系統(tǒng)中的調(diào)試程序,程序名稱就叫DEBUG。DEBUG在windows系統(tǒng)中也是極其重要的編譯操作。
你改錯了文件
你改對了文件,但卻是在別人的機器上
你改對了文件,但忘了保存
你改對了文件,但忘了重新編譯
你認為你把那個東西開啟了,但實際上你把它關閉了
你認為你把那個東西關閉了,但實際上你把它開啟了
會議中,你應該用心聽。
你運行了錯誤的版本
你運行了正確的版本,但卻是在別人的機器上
你改正了問題,但忘了提交
你改正了問題,也提交了,但忘了 push 到版本庫中
你改正了問題,也提交了,也 push 了。然而,很多用戶的工作都依賴于之前有問題的版本,于是你必須回滾。
網(wǎng)絡debug命令簡介
獲得路由器中交換的報文和幀的細節(jié)信息
用于調(diào)試信息
debugging命令使用注意事項
不使用debug命令監(jiān)控正常的網(wǎng)絡運行
在網(wǎng)絡使用的低峰期使用
不要輕易使用類似debugging all之類的命令
使用debugging命令后,應立即以“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)部結構,因為我們用到的Debugger能夠完成對“Debug對象”的監(jiān)控工作,在監(jiān)控的過程中可以獲取“Debug對象”動態(tài)特征的信息,這對我們理解其結構是非常有用的。
關于更詳細的介紹和研究可以參考國人原創(chuàng)的《軟件調(diào)試》,這是一本非常全面且深入的“軟件調(diào)試”紅皮書。
WinDbg是微軟發(fā)布的一款相當優(yōu)秀的源碼級(source-level)調(diào)試工具,可以用于Kernel模式調(diào)試和用戶模式調(diào)試,還可以調(diào)試Dump文件。
DEBUG 2
Debug
啟動 Debug,它是可用于測試和調(diào)試 MS-DOS可執(zhí)行文件的程序。
Debug [[drive:][path] filename [parameters]]
參數(shù)
[drive:][path] filename
指定要測試的可執(zhí)行文件的位置和名稱。
parameters
指定要測試的可執(zhí)行文件所需要的任何命令行信息。
說明:使用 Debug 命令但不指定要測試的文件
如果使用沒有位置和文件名的 Debug 命令,然后鍵入所有的 Debug 命令以響應 Debug 提示符,連字符(-)。
思得不瑞奧
機械設備調(diào)試的“調(diào)試”英文用 debug。
debug
英 [di?'b?g]? 美 [,di'b?ɡ]
vt. 調(diào)試;除錯,改正有毛病部分;[軍] 除去竊聽器
短語
debug monitor?翟監(jiān)督程序 ; 除錯監(jiān)視程序 ; 調(diào)試監(jiān)視器 ; 偵錯監(jiān)視器
Debug Options?設定修正 ; 設定批改 ; 彈出調(diào)試操作 ; 除錯選項
online debug?聯(lián)機調(diào)試
擴展資料
同近義詞
1、commissioning
英 [k??m???n??]? 美 [k?'m???n??]
n. 試車;試運轉(zhuǎn)
v. 委任;命令;委托制作(commission的ing形式)
短語
commissioning date?投產(chǎn)日期 ; 啟用日期 ; 投產(chǎn)期
Commissioning programme?啟用計劃 ; 調(diào)試方案 ; 調(diào)試程序
commissioning application?啟用申請
2、tune
英 [tju?n]? 美 [tun]
n. 曲調(diào);和諧;心情
vt. 調(diào)整;使一致;為…調(diào)音
vi. [電子][通信] 調(diào)諧;協(xié)調(diào)
n. (Tune)人名;(英)圖恩
短語
tune in?收聽 ; 調(diào)諧 ; 調(diào)入 ; 在線電臺應用
signature tune?音調(diào) ; 信號曲 ; 信號樂曲 ; 調(diào)子
Leading Tune?力正圖恩
fangfang19880923
debug命令DEBUG命令參數(shù)詳解DEBUG是一個DOS實用程序,是供程序員使用的程序調(diào)試工具,可以用它檢查內(nèi)存中任何地方的字節(jié)以及修改任何地方的字節(jié)。它可以用于逐指令執(zhí)行某個程序以驗證程序運行的正確性,也可以追蹤執(zhí)行過程、比較一個指令執(zhí)行前后的值以及比較與移動內(nèi)存中數(shù)據(jù)的范圍,讀寫文件與磁盤扇區(qū)。它的功能包括以下幾個方面。1,直接輸入,更改,跟蹤,運行匯編語言源程序;2,觀察操作系統(tǒng)的內(nèi)容;3,查看ROMBIOS的內(nèi)容;4,觀察更改RAM內(nèi)部的設置值;5,以扇區(qū)或文件的方式讀寫軟盤數(shù)據(jù)DEBUG把所有數(shù)據(jù)都作為字節(jié)序列處理。因此它可以讀任何類型的文件。DEBUG可以識別兩種數(shù)據(jù):十六進制數(shù)據(jù)和ASCⅡ碼字符。它的顯示格式是各個字節(jié)的十六進制值以及值在32與126之間的字節(jié)的相應ASCⅡ碼字符。在DEBUG中輸入數(shù)據(jù)有兩種方法:提示方法和非提示方法。在用提示方法時,用戶可以輸入要求輸入數(shù)據(jù)的命令,后跟數(shù)據(jù)所要輸入的地址。然后用戶就可以看到該地之中已有內(nèi)容及一個冒號提示符。此時用戶可以在提示符下輸入一個新的值或者按下回車鍵或CTRL+C回到短橫(-)提示符。在運用非提示方法時,用戶可以輸入要輸入數(shù)據(jù)的內(nèi)存地址以及要輸入的字節(jié)。但與使用字處理程序或正文編輯程序時不一樣,在使用DEBUG時,用戶不能直接移動光標到一入口點輸入或修改數(shù)據(jù),而要一次輸入一個或幾個字節(jié)。在使用DEBUG時可以只涉及內(nèi)存中的數(shù)據(jù),從而一般都要指定所要處理的內(nèi)存地址,地址的輸入格式是:[段地址]:[位移]。如果沒有輸入地址,DEBUG將假定為當前內(nèi)存段,從位于地址100H的字節(jié)開始。前100H字節(jié)保留給程序段前綴使用,這一專用區(qū)域用于建立DOS與程序之間的聯(lián)系。DEBUG總是用四位十六進制數(shù)表示地址。用兩位數(shù)表示十六進制數(shù)據(jù)。講到這里大家應該對DEBUG有了初步的了解,但是光知道這些可不夠,接下來我來講講DEBUG的命令格式和命令。當輸入DEBUG調(diào)用了DEBUG程序,就會出現(xiàn)一個短橫提示符,用戶就可以在這一短橫后輸入DEBUG程序的命令。有些DEBUG命令會顯示一個內(nèi)存地址并產(chǎn)生一個作為提示符的冒號。在這些提示符后,用戶可以輸入一個新值以改變所顯示位置原來的值。如果用戶不輸入一個新值而是按下回車或CTRL+C,那么原來的值不會改變。一般用不著把地址和命令名字分開。例如,用轉(zhuǎn)儲命令D察看100號地址的數(shù)據(jù),那么這個命令可以用以下任一種形勢輸入:D100D100D。100D,100如果輸入的命令中出現(xiàn)了錯誤,DEBUG將在下一行對著錯誤的位置標記出來,例如:-s100d12^ErrorDEBUG的命令及功能如下:*A[地址]匯編命令功能:將指令直接匯編成機器碼輸入到內(nèi)存中。說明:用于小段程序的匯編及修改目標程序,所有輸入的數(shù)字均采用十六進制,用戶裝入內(nèi)存的匯編語句是連續(xù)存放的,若沒有指定地址,并且前面沒有使用匯編命令,改語句被匯編到CS:0100區(qū)域。例A:>DEBUG-a010008F1:0100MOVAH,0908F1:0102MOVDX,10908F1:0105INT21H;08F1:0107INT21H;debugtan.exe-u:反編譯成匯編語言程碼…………..-g100指定中斷點Programterminatednormally:另外:我們在DEBUG下可運行一個文件.EXE如:A:\>debugtan.exe-g即可開始運行此程序,和在DOS下完全一樣:*H[數(shù)值][數(shù)值]十六進制算術運算命令功能:分別顯示兩個十六進制數(shù)相加的和以及第一個數(shù)減去第二個數(shù)的差。說明:替用戶完成簡單的十六進制數(shù)的運算。例:-h453856239B5BEF15*I[端口地址]功能:從指定的端口輸入并顯示(用十六進制)的一個字節(jié)。例:-i70F9;顯示70端口的內(nèi)容為F9I命令可由80X86的64K個端口取數(shù)據(jù)*L[地址][盤號:][邏輯扇區(qū)號][扇區(qū)數(shù)]功能:將一個文件或盤的絕對扇區(qū)裝入存儲器。說明:單個L命令能夠裝入的最大扇區(qū)數(shù)是80H,其中盤號0,1,2,3……分別代表A,B,C,……出現(xiàn)讀盤錯,顯示錯誤信息。(1)格式1.L裝入地址驅(qū)動器名起始扇區(qū)/扇區(qū)數(shù)這種方式可把磁盤上指定扇區(qū)范圍的內(nèi)容裝入到存儲器從指定地址開始的區(qū)域中,在此外扇區(qū)編號引用邏輯/扇區(qū)的方式。例:-L100001,將A驅(qū)的0扇區(qū)裝至CS:100上-d10010f08F1:0100EB3C903C53444F53-362E323202010100.L,MSDOS6.22……(2)格式2:L裝入地址這種方式可把指定文件裝入內(nèi)存,裝入的文件可在進入DEBUG時指定亦可用N命令建立,格式為-n文件名:例1DEBUGtan.pas-L100例2DEBUG-ntan.pas-L100須知:L命令只能讀取邏輯扇區(qū),不能讀取硬盤分區(qū)表L命令中所用的磁盤代碼A=00,B=01,C=02……*M[地址范圍][起始地址]數(shù)據(jù)傳送命令功能:把地址范圍內(nèi)的存儲器單元的內(nèi)容移到起始地址的指定地址中說明:傳送期間,源區(qū)和目標區(qū)可以部分重疊;傳送后源區(qū)域數(shù)據(jù)保持不變。例:-e1004142434445-d10010f08F1:0100414243444562626364-6162636461626364ABCDEBCDABCDABCD-M100104110-d110L1F08F1:0100414243450A2119-200101200796879FABCDE……*N[盤號:][路徑][文件名][擴展名]功能:定義操作文件名。說明:可同時定義兩個操作文件,并將形成的文件控制塊相應的設置在內(nèi)存CS:5C和CS:6C上,供以后的L和W命令操作之用。我們在運行程序偵錯時,在啟動DEBUG時在其后加文件程序名以及該程序的參數(shù)或運行文件,但當我們偵錯一段后,可能裝入其它文件來測試,這時我們可利用N命令來設置而無需退出DEBUG。例:A:\>DEBUGtan.exe-nyoug.pas當程序偵錯一段時間后,若要把tan.exe裝入tan1.pas則-ntanl.pas*O[端口地址][數(shù)據(jù)]輸出命令功能:發(fā)送字節(jié)到指定的輸出端口。例:當我們遇到開機要求輸入口令時,可用如下方式取消-O7010_O7100*P[=地址][數(shù)據(jù)]進程命令功能:將一個子程序調(diào)用指令,循環(huán)指令,中斷指令或一個重復字符串指令,停止在下一條指令上。說明:在執(zhí)行一條子程序調(diào)用指令,循環(huán)指令,中斷指令或一個重復字符串指令時,發(fā)出P命令去執(zhí)行有關指令,并且返回到要執(zhí)行的下一條指令。P命令和T一樣選用來跟蹤程序運行過程用的命令,我們可以在P命令中指定程序運行的起始地址,指令個數(shù),如未指定則CS:IP所指定程序的地址開始一次運行一條令。P與T命令的差別在于P命令把CALL/INT當成一條指令來執(zhí)行,簡化了跟蹤過程,P命令只運行RAM內(nèi)存的命令,而T命令則可運行RAM和ROM里的程序。*Q退出命令。*R[寄存器]寄存器命令功能:一,顯示單個寄存器的內(nèi)容,并提供修改功能。二,顯示所有寄存器內(nèi)容,再加上字母標志位狀態(tài)以及要執(zhí)行的下一條指令。三,顯示8個標志位狀態(tài),并提供修改功能。若不想改變則回車即可。例:-rbxbx0050:51-rAX=0000BX=0051CX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0003ES=0CD3SS=0CD3IP=0100NVUPEIPLNZNAOPNC0CD3:01000FDBOF若想改變標志寄存器,用-RF回車,則DEBUG會將標志內(nèi)容顯示出來,若想改變?nèi)我粯酥?,只要輸入該標志的名稱即可。標志名稱設置未設置標志名稱設置未設置滋出OV(未溢出)NV(未溢出)零位ZRNZ(不等于零)方向DN(減少)UP(增加)輔助進位ACNA(無進位)中斷EI(許可)DI(禁止)奇偶標志PE(偶)PO(奇)符號NG(負)PL(正)進位CYNC(清除進位)例:-RfNVUPEIPLNZNAPONC:-OVDI←輸入值*S[地址范圍][字符串]功能:在指定的地址范圍內(nèi)查找給定的字符串。說明:用來指定在地址范圍內(nèi)查找一個字符串,若找到則顯示其地址,否則直接顯示DEBUG提示符。隱含地址為DS段值。在此內(nèi)存可以用(起始地址)(終止地址)或(起始地址)L(長度)的方式來表示,而字符串與數(shù)據(jù)行則可混合使用:如:02.76"BC"。例:-d100lof08F1:0100OF2A41430B314296-FFF0B98AF300B1..AC,1B-S100lof"AC"08F1:0102←表示找到,由0102開始,*T[=地址][指令條數(shù)]跟蹤命令功能:逐條跟蹤程序的執(zhí)行,每條指令執(zhí)行后都將顯示各寄存器的內(nèi)容。說明:通常采用跟蹤一條指令,但用戶也可以用指令條數(shù)設定一次跟蹤多條指令,每執(zhí)行一條指令之后,顯示所有寄存器的內(nèi)容和標志狀態(tài)。逐條指令跟蹤-T[=起始地址]從指定地址起執(zhí)行一條指令后停下來,顯示所有寄存器內(nèi)容及標志位的值,如來指定地址則從當前CS:IP開始執(zhí)行。A:\>DEBUG-A08F1:0100MOVDL,03H08F1:0102MOVAH,02H08F1:0104INT21H08F1:0106INT20H08F1:0108-TAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=08F1ES=08F1SS=08F1CS=08F11P=0105NVUPEIPLNZPOCY09F1:0102B402MOVAH,02若指定起始地址,則T命令會從指定的地址開始跟蹤,我們還可以指定跟蹤一次所運行指令的個數(shù),用Ctrl+S暫停屏幕的顯示,以便觀察。-t=10010;由CS:100開始跟蹤10條指令*U[起始地址]或者[地址范圍]功能:將內(nèi)存中的內(nèi)容轉(zhuǎn)換為匯編語句。說明:反匯編的字節(jié)數(shù)取決與用戶的系統(tǒng)顯示形式,以及在U命令中使用的可選項。(1)從指定地址開始編譯,反匯編32個字節(jié)-U[地址]←從CS:100開始,其反匯編32個字節(jié)如果地址被省略,則從一個U命令的最后一條指令的下一條單元開始匯編32個字節(jié)。(2)對指定的存貯范圍進行反匯編-u起始地址終止地址(L長度)例:-U10010908F1:0100CD20INT2008F1:0102FF9F009ACALLFA12[BX+9A00]08F1:0106F0LOCK08F1:0107FE1DCALLFAR[DI]08F1:0109F0LOCK說明:如指定了范圍則整個范圍全都會被反編譯*W[地址][盤符:][起始扇區(qū)][扇區(qū)數(shù)]寫盤命令功能:將修改過的數(shù)據(jù)寫到磁盤上。說明:可以將指定內(nèi)存地址開始的數(shù)據(jù)寫在磁盤上,可以在沒有指定參數(shù),或指定地址參數(shù)的情況下,將調(diào)試文件寫在磁盤上。在運行W時需設置文件的大小CX或BX寄存器(1)把數(shù)據(jù)寫入磁盤的指定扇區(qū)-W起始地址驅(qū)動器名起始扇區(qū)扇區(qū)數(shù)(2)把數(shù)據(jù)寫入指定文件中-W起始地址例A:\>DEBUG-A08f1:0100..寫入程序段08F1:012A.-RCXCX:0000:2A←寫入字節(jié)數(shù),即為程序結尾地址減起始地址-ntan.com←設置文件名,需后綴為com-wWring002Abytes-qA:\>TAN←即可執(zhí)行此程序*"XD"命令:釋放EMS內(nèi)存例:-XD0001handle0001deallocatel←釋放了利用XD釋放后可再分配*"XM"命令;把擴充內(nèi)存上的內(nèi)存頁區(qū)映射到主內(nèi)存區(qū)格式:XMRAM長頁碼主內(nèi)存頁碼句柄例:-XM320001←把0001號句柄的第3號邏輯頁區(qū)映射到2號真實頁區(qū)Logicalpage03mappedtophysicalpage02*"XS"命令:顯示當前EMS使用情況。格式-XS實用debug命令集錦1.非物理0磁道壞軟盤的修復此種損壞從軟盤盤面上來看并沒有明顯的劃傷和霉變。一般可以恢復其數(shù)據(jù),也可是軟盤重新在利用。處理方法如下:ⅰ.進入debugⅱ.取一張引導區(qū)沒有損壞的好磁盤,插入軟驅(qū)-l100001ⅲ.插入損壞的磁盤到軟驅(qū)-w100001-q注意:好盤與壞盤容量必須相同2.物理0磁道壞軟盤中的數(shù)據(jù)讀取對于0磁道損壞的磁盤,一般來說是應該拋棄了,當你也不妨試一試已下方法:磁化處理:用較強的磁鐵在靠近壞磁盤的表面處反復移動,切不可碰到磁盤介質(zhì),以免劃傷表面,然后在試試格式化。軟盤換面:小心的將磁盤打開,堅磁片與金屬芯片分開,方面后再按原來的方法粘在一起即可,在重新格式化。diskfix:對于diskfix想必大家都用的比較多了,里面的磁盤修復功能很好用的。能修復大多數(shù)磁盤表面錯誤。