Lab7 Preview Report - Holapoya/ee240500 GitHub Wiki

Topic

Source code debugger System emulator

Source code debugger

Introduction

Debugger

Debugger,顧名思義功能是Debug,是指可以用來測試其它程式並找出bug的computer program。對於電機系來說Debugger是非常常用的東西,以下介紹根本次lab有關的GNU Project debugger(GDB)。

GNU Project debugger(GDB)

GDB是 linux 底下的一種免費的 debug 程式,隨然介面不像windows的SoftIce 那麼好,但也佔有相當的地位。最常見使用GDB的方法,就是在compile程式的時候,要加上「 -g 」(其實有-g、 -g2、-g3三種等級,除非用到了 inline 的 function,否則通常用-g都可以解決),compile完後再使用gdb來執行程式進行debugging。(gdb還有許多種用法,如(gdb) r、(gdb) c等等,這裡就不詳細介紹。)

Related parts of our lab

在這次lab我們會使用GDB來debug helloworld.c,並試著在Nitrogen6X板子上運行GDB。

Questions about the topic or our lab

目前沒什麼問題。

System emulator

Introduction

Emulator

emulator,也就是大家常說的模擬器,是指能夠透過軟體程式來模擬硬體處理器的功能和指令系統的程式,電腦或者其他多媒體平台能夠藉由emulator來執行其他平台上的軟體,以下介澳根本次lab有關的QEMU模擬器。

QEMU

QEMU的功能與Bochs,PearPC類似,但在某些地方優於後兩者,例如具有高速度及跨平台的特性:QEMU 的模擬速度約為實機的 25%,約為 Bochs 的60倍,而經由kqemu這個開源的加速器,QEMU甚至能模擬至接近實機的速度。

QEMU有兩種主要運作模式:

User mode:QEMU能啟動那些為不同中央處理器編譯的Linux程式,例如重要的Wine及Dosemu。

System mode:QEMU模擬整個電腦系統,包括中央處理器及其他週邊裝置,使得為系統源代碼進行測試及除錯工作變得容易,也可用來在一部主機上虛擬數部不同虛擬電腦。

Related parts of our lab

這次lab將藉由使用QEMU,在Ubuntu上模擬並執行GDB和gdbserver(負責與GDB溝通,詳細步驟就不多做介紹。

Questions about the topic or our lab

目前沒有問題。