Lab 7 Preview Report - alvis91919/ee240500 GitHub Wiki
Topics
- Source code debugger
- System emulator (e.g., QEMU)
Source code debugger
-
Introduction Debugger是用來偵測程式的工具,能夠讓程式碼在指令組模擬器(ISS)中檢查運行狀況並排錯、除錯。但是將程式運行在除錯器之下,會比直接在運作的平台以及處理器上執行還要來得慢。典型的除錯器通常能夠在程式執行時擁有以下這些功能,例如單步執行(single-stepping)、利用中斷點(breakpoint)使程式遇到各種種類的事件(event)時停止(breaking)(一般用於使程式停止在想要檢查的狀態)、以及追蹤某些變數的變化。有些除錯器也有能力在想要除錯的程式在執行狀態時,去改變它的狀態,而不僅僅只是用來觀察而己。
Source code debugger也是debugger的一種,可以顯示出錯誤所在位置的原始碼,並使其於整合開發環境裡也能看見。
-
Related parts of our lab
這次的實驗主要是要讓我們學會各種debug 的方式。一開始我們先在linux 的環境下進行debug。進入(gdb)的頁面後即可進行debug,主要的流程如下:
- 把code print 出來
- 設定breakpoint
- 執行程式把要看的東西用指令”p”印出
- 重複執行5次看程式有沒有出現問題(repeat),Step the code till fflush(stdout)離開gdb
接下來的debug是在QEMU下進行的我們必須cross-compile 後把檔案從 tftp 傳過去虛擬的位置來進行debug。之後重複上面的步驟即可進行debug。
第三個debug 的方法則是使用板子來使用gdb,害第二個debug 的原理相似, 透過板子傳出一個listen 的訊號,來讓電腦直接進行連接,然後重複先前的debug 的步驟即可開始debug。
-
Questions about the topic or our lab
NO。
System emulator (e.g., QEMU)
-
Introduction
其軟體稱為模擬軟體,是指主要透過軟體模擬硬體處理器的功能和指令系統的程式使電腦或者其他多媒體平台(掌上電腦,手機)能夠執行其他平台上的軟體。任何操作環境原則上可以模擬任何其他的操作環境,多用於電視遊戲或街機中。
QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟體,可分為兩種操作模式:
- User mode模擬模式,亦即是使用者模式。QEMU能啟動那些為不同中央處理器編譯的Linux程式。而Wine及Dosemu是其主要目標。
- System mode模擬模式,亦即是系統模式。QEMU能模擬整個電腦系統,包括中央處理器及其他週邊裝置。它使得為系統源代碼進行測試及除錯工作變得容易。其亦能用來在一部主機上虛擬數部不同虛擬電腦。
-
Related parts of our lab
利用QEMU模擬不同環境下的debug。
-
Questions about the topic or our lab
感覺是個滿有趣的東西,尤其用於娛樂上。