Lab7 Preview Report - YYBS/ee240500 GitHub Wiki

Topics

Source code debugger

Introduction

  1. OProfile是Linux內核支援的一種效能分析機制。 它在時鐘中斷處理入口處建立監測點,記錄被中斷的上下文現場,由配套的使用者態的工具oprof_start負責在使用者態收集資料,opreport則分析資料並給出分析報告。 通過這個工具,開發人員可以得知一個程式的瓶頸在哪裡,進而指導代碼最佳化。

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

3.gdbserver is a computer program that makes it possible to remotely debug other programs.[1] Running on the same system as the program to be debugged, it allows the GNU Debugger to connect from another system; that is, only the executable to be debugged needs to be resident on the target system ("target"), while the source code and a copy of the binary file to be debugged reside on the developer’s local computer ("host"). The connection can be either TCP or a serial line

Related parts of our lab

我們要在不同系統上執行debug程式

Questions about the topic or our lab

  1. 不太懂gdbserver,為什麼debug要在其他系統做?這樣有什麼好處嗎

Topics

System emulator (e.g., QEMU)

Introduction

  1. QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟體。它與Bochs,PearPC近似,但其具有某些後兩者所不具備的特性,如高速度及跨平台的特性。經由kqemu這個開源的加速器,QEMU能模擬至接近真實電腦的速度。QEMU有兩種主要運作模式: User mode模擬模式,亦即是使用者模式。QEMU能啟動那些為不同中央處理器編譯的Linux程式。而Wine及Dosemu是其主要目標。 System mode模擬模式,亦即是系統模式。QEMU能模擬整個電腦系統,包括中央處理器及其他週邊裝置。它使得為系統源代碼進行測試及除錯工作變得容易。其亦能用來在一部主機上虛擬數部不同虛擬電腦。

  2. GNU偵錯器(GNU Debugger,縮寫:GDB),是GNU軟體系統中的標準偵錯器,此外GDB也是個具有移攜性的偵錯器,經過移攜需求的調修與重新編譯,如今許多的類UNIX作業系統上都可以使用GDB,而現有GDB所能支援除錯的程式語言有C、C++、Pascal以及FORTRAN。

  3. GNU是一個自由作業系統,其內容軟體完全以GPL方式釋出。這個作業系統是GNU計劃的主要目標,名稱來自GNU's Not Unix!的遞迴縮寫,因為GNU的設計類似Unix,但它不包含具著作權的Unix代碼。GNU的創始人,理察·馬修·斯托曼,將GNU視為「達成社會目的技術方法」。

Related parts of our lab

我們利用QEMU來模擬不同環境

Questions about the topic or our lab

系統模擬什麼時候很重要?