-
Notifications
You must be signed in to change notification settings - Fork 0
Lab 7 Preview Report
alvis91919 edited this page Apr 18, 2016
·
6 revisions
- Source code debugger
- System emulator (e.g., QEMU)
-
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。