Lab7 Preview Report - Jian-PingWang/EE2405 GitHub Wiki

Topics

  • Source code debugger
  • System emulator

Source code debugger

  • Introduction

Debugger是指一種用於偵錯其它程式的電腦程式及工具。能夠讓程式碼在指令組模擬器(ISS)中可以檢查運行狀況以及選擇性地運行,以便排錯、除錯。當開發的進度遇到瓶頸或找不出哪裡有問題時,這技術將是非常有用的。

典型的除錯器通常能夠在程式執行時擁有以下這些功能,例如單步執行(single-stepping)、利用中斷點(breakpoint)使程式遇到各種種類的事件(event)時停止(breaking)(一般用於使程式停止在想要檢查的狀態)、以及追蹤某些變數的變化。有些除錯器也有能力在想要除錯的程式在執行狀態時,去改變它的狀態,而不僅僅只是用來觀察而己。

一個好的除錯器存在的重要性不誇張。就算一個程式語言/平台在電腦的行程裡運作非常良好。有無除錯器以及除錯器的好壞,對於一個程式語言及平台來說,經常是能不能正常執行的重要因素。

  • Related parts of our lab

在這個lab我們將會學習如何使用linux的debugger--GDB。GDB 的全名是 GNU Debuger. 是 linux 底下的一種免費的 debug 程式。而只要在 compile 程式的時候, 要加上 -g 的選項,即可使用GDB了。可以用-g, -g2, -g3,而g後面的數字越大,就代表可以 debug 的級別越高,最高級別就是 -g3。比方說,若程式內有用到 inline function的話, 用 -g 去 compile 就無法 debug inline function,而必須使用 -g2 或-g3。

  • Questions about the topic or our lab

暫時尚無。

System emulator

  • Introduction

Emulator是指主要透過軟體模擬硬體處理器的功能和指令系統的程式使電腦或者其他多媒體平台(如掌上電腦,手機)能夠執行其他平台上的軟體。理論上,任何操作環境原則上可以模擬任何其他的操作環境。

  • Related parts of our lab

在這次的lab中,會使用到QEMU模擬器。而QEMU是一個可以模擬x86、x86_64、ARM、SPARC、SPARC64、PowerPC、PowerPC64、MIPS、m68k與 SH-4等處理器的open source軟體。 QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟體。它與Bochs,PearPC近似,但其具有某些後兩者所不具備的特性,如高速度及跨平台的特性。經由kqemu這個開源的加速器,QEMU能模擬至接近真實電腦的速度。QEMU有兩種主要運作模式:

(1)User mode模擬模式,亦即是使用者模式。QEMU能啟動那些為不同中央處理器編譯的Linux程式。而Wine及Dosemu是其主要目標。

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

  • Questions about the topic or our lab

暫時尚無。