DEBUG

DEBUG

操作程序
為馬克1号編制程序的是一位女數學家雷斯.霍波,有一天,她在調試程序時出現故障,拆開繼電器後,發現有隻飛蛾被夾扁在觸點中間,從而“卡”住了機器的運行。于是,霍波诙諧的把程序故障統稱為“臭蟲(BUG)”,把排除程序故障叫DEBUG,而這奇怪的“稱呼”,竟成為後來計算機領域的專業行話。如DOS系統中的調試程序,程序名稱就叫DEBUG。DEBUG在windows系統中也是極其重要的編譯操作。
  • 中文名:消除故障
  • 外文名:Debug
  • 别名:

Debug的由來

1937年,美國青年霍德華.艾肯找到IBM公司為其投資200萬美圓研制計算機,第一台成品艾肯把它取名為:馬克1号,又叫“自動序列受控計算機”,從這時起IBM公司由生産制表機,肉鋪磅秤,咖啡研磨機等亂七八糟玩意兒的行業,正式跨進“計算機”領地。

為馬克1号編制程序的是一位女數學家雷斯.霍波,有一天,她在調試程序時出現故障,拆開繼電器後,發現有隻飛蛾被夾扁在觸點中間,從而“卡”住了機器的運行。于是,霍波诙諧的把程序故障統稱為“臭蟲(BUG)“,把排除程序故障叫DEBUG,而這奇怪的”稱呼“,竟成為後來計算機領域的專業行話。如DOS系統中的調試程序,程序名稱就叫DEBUG.

==========================================

DOS中的Debug

是為DOS提供的有力的偵錯,跟蹤程序運行,檢查系統數據的工具程序,它是在字符界面下以單字符命令方式工作。要很好地使用它必須具備一定的彙編程序設計和硬件基本知識的能力,當然,它為彙編語言程序員提供了有效的調試手段,它的功能包括以下幾個方面。

1. 直接輸入、更改、跟蹤、運行彙镅栽闖縧颍華

2. 觀察操作系統的内容;

3. 查看ROM BIOS的内容;

4. 觀察更改RAM内部的設置值;

5. 以扇區或文件的方式讀寫軟盤數據。

在DEBUG中地址用段地址與段内地址來表示,而段地址可以明确地指出來,也可以用一個段指示器(段寄存器)來代表,用段寄存器表示時,其段地址就是此寄存器的内含值:

如:用段地址和段内地址表示FOFF:0100

用段寄存器和段内地址表示CSF:0100←CS指向F000

下面列出了常用命令用法。

-A 地址 從指定地址開始編寫小彙編程序,按兩個回車鍵結束編輯

-U 地址 從指定地址開始反彙編32字節的機器指令,缺省地址則從上一U命令繼續

-D 始址 終址 以16進制/Asc字符對照方式顯示指定内存範圍的數據,每行顯示10H個字節

-E 地址 值表 用給出的值表(空格分隔)替換指定地址開始的内存單元,例:-E  100  'v'  1F  'hello'

-N 文件名 為後續的L/W命令約定所操作的文件名

-L 地址 将N命令所指定文件的内容讀入到指定内存位置。另,邏輯卷扇區直接讀:-L 地址 邏卷号 起始邏扇号 扇數

-W 地址 将BX-CX個字節的内存數據寫入N命令指定的文件中。另,邏輯卷扇區直接寫:-W 地址 邏卷号 起始邏扇号 扇數

-R 寄存器名 顯示并允許修改指定寄存器的值

-G=始址 終址 執行指定内存中的機器指令程序

-T=地址 單步執行機器指令,缺省地址則從上一T命令繼續。另,繼續跟蹤m條指令:-T m

讀取c:卷的引導扇區,并保存到Boot.1文件中,并簡單分析引導程序的前面幾條指令:

-L 1000 2 0 1

-N boot.1

-R bx    ;輸入0000

-R cx    ;輸入0200

-W 1000

-U 1000

讀取第一個硬盤上的主引導扇區,并保存到MB.1文件中,在屏幕上顯示硬盤分區表數據:

-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

Debugger

"Debugger"這個詞按它的英文字面意思來講是這樣一種“裝置”(-er),這種裝置可以“消除”(De-)“系統中的缺陷”(bug)。然而事實上,迄今為止我們經常使用到的"Debugger"隻是用來幫助我們進行Debug的工具,"Debugger"本身不能自動完成"Debug"。我們可以回想一下我們是如何進行Debug的,在進行Debug的過程中,我們通過Debugger來完成以下工作:

(1)監視“Debug對象”的狀态;

(2)控制“Debug對象”的運行;

這些工作可以為“發現Debug對象中存在的問題”以及“對解決問題方案的檢驗”提供有用的信息。

監控工作有時隻需要由軟件就可以完成,有時不僅需要軟件支持,還需要硬件的支持。

Debugger除了被用來Debug,還被用來幫助我們理解“Debug的對象”内部結構,因為我們用到的Debugger能夠完成對“Debug對象”的監控工作,在監控的過程中可以獲取“Debug對象”動态特征的信息,這對我們理解其結構是非常有用的。

如何打開debug開關

debug是設備調試,排錯中非常重要也非常有效的手段。需要對網絡協議和Quidway産品相對熟悉的情況下使用。

過程:首先輸入

[Router]info-centerenable

使用console配置口時,輸入:

[Router]info-centerconsole

[Router]info-centerconsoledebug

使用遠程telnet時,輸入:

[Router]info-centermonitor

[Router]info-centermonitordebug

此處以調試鍊路層協議ppp數據包為例

[Router]debuggingppppacket

『注意』

1.特權模式下debug;可以從displaydebug看出現在有哪些調試開關是打開的

2.調試開關打開,對路由器性能會有相應程度的影響,所以用後請及時關閉調試信息:

[Router]undodebugall,或者ctrl+d亦可

上一篇:香藥

下一篇:同光中興

相關詞條

相關搜索

其它詞條