標籤: 暫無標籤

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

1 DEBUG -Debug的由來



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

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

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

2 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對象」動態特徵的信息,這對我們理解其結構是非常有用的。

3 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亦可

上一篇[type]    下一篇 [更識楯無]

相關評論

同義詞:暫無同義詞