Windows Debugging 之一

來源:互聯網
上載者:User

什麼是debugging?

從程式或者設計中找到並移除bug,就是debugging。還有一個意思就是使用工具來確認系統失敗或者程式錯誤的可能原因。

 

一些基本術語

Call Stack

是一種基本的,用來儲存程式函數調用的,並包括所涉及的傳入參數的,資料結構。

 

Exception

一個由某個特別的機器指令的執行導致的錯誤情況。可以使硬體引起的也可以使軟體引起的。

 

I/O Request Packet (IRP)

表示io請求並控制io請求執行的一種資料結構。

 

Interrupt

一種正常命令的執行被打斷,然後控制被傳送給中斷處理器的情況。

 

Interrupt Request Level (IRQL)

中斷的優先順序。優先順序高於處理器的IRQL的中斷,就會優先處理,低的就會被阻擋掉,不會影響當前的執行。

 

Kernel Mode

特權程式和作業系統的處理器訪問模式。這種模式下的進程有權訪問作業系統的任何部分,並不像user-mode進程那樣受限制。也就是說,所有的核心態進程共用相同的地址空間。

 

Nonpaged Pool

指系統記憶體中不能被按頁映射到磁碟上的部分。

 

Paged Pool

與上面相反,這個就是可以映射到磁碟的部分了。它不僅僅指已經被映射到磁碟上了的記憶體,也包括任意准許映射的記憶體。

 

Paging

記憶體管理器把記憶體分頁從記憶體中轉移到磁碟中的一種虛擬記憶體操作。當一個線程尋找一個分頁沒找到的時候,就會發生Page fault。

 

Process

進程就是一系列資源的容器,這些資源供執行程式的線程來使用。Program和Process看起來很像,他們有著根本的不同。Program是一個靜態指令序列,而Process是一個資源的容器。

 

Register

寄存器,也就是由CPU直接使用的超快速的儲存空間。

 

Thread

線程是一個進程內的用來執行的實體。

 

User Mode

應用程式使用的處理器訪問模式。在該模式下的進程在它們自己的虛擬位址上使用CPU。他們不能擁有對系統許多部分的直接存取權,包括系統硬體,沒分配給他們的記憶體,還有一些可能危及到系統完整性的敏感地帶。因為在這種模式下的進程已經與系統和其他使用者態模式下的進程隔離開了,他們不能訪問這些資源。

 

Attach

將debugger與運行中的程式串連起來的動作。

 

Blue Screen

大名鼎鼎的藍屏,當Windows作業系統遭遇硬體問題時,或者遭遇關鍵資料不一致,或者其他嚴重的錯誤時,作業系統會自動的當機,然後在藍色的螢幕上顯示錯誤資訊。

藍屏時最重要的資訊就是那個message code,也叫bug check code。

 

Breakpoint

debugger允許使用者指定一個點,在該點出停止程式的執行。

 

Crash Dump File

當嚴重錯誤出現時,你可以指定作業系統寫入資訊到硬碟上的crash dump檔案中。這個檔案中包含debugger可以用來分析錯誤的資訊。

 

Debug Session

實際的使用軟體debugger來分析一台電腦上崩潰的軟體組件的過程就叫做debug session,也可以指分析一個已經儲存下來的dump檔案的過程。

 

Disassembly / Assembly Code

反組譯碼,彙編代碼。微處理器都只能識別特別為它定製的一系列指令的集合。當一個程式編譯結束,編譯器就會把程式加工成為一些列的底層硬體可以理解的指令。將二進位的指令換成可以理解的助記符,就得到了彙編代碼。這個過程叫做反組譯碼。

 

Host Machine

運行debugging session的機器叫做host machine。

 

Local debugging

當debugger,被debug的程式都在一台機器上的時候,這樣的debugging session叫做local debugging。

 

Remote Debugging

debugger在host machine中,被debug的程式在目標機器上。

 

Symbol Files

包括原始碼和所有的標示符(變數,函數名)映射的,在編譯時間建立的,給debugger使用的檔案。

 

Target Application

也就是debuggee

 

Target Machine

目標機器,前面的解釋挺清楚了。

 

debugger的種類

CDB--- Microsoft Console Debugger

NTSD---Microsoft NT Symbolic Debugger

KD--- Microsoft Kernel Debugger

WinDbg--- Microsoft Windows Debugger

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.