1. 程式人生 > >XV6環境搭建及注意事項

XV6環境搭建及注意事項

Ubuntu16.04SLT 64位

工具鏈

sudo apt-get install gcc-multilib

libsdl1.2-dev, libtool-bin, libglib2.0-dev, libz-dev, and libpixman-1-dev.

 

 

下載lab進行make編譯

 

 

下載qemu進行編譯

git clone http://web.mit.edu/ccutler/www/qemu.git -b 6.828-2.3.0

 

編譯的時候首先需要指定目錄

./configure --disable-kvm [--prefix=PFX] [--target-list="i386-softmmu x86_64-softmmu"]

 

PFX為指定的目錄

然後 make && make install

 

在lab的GNUmakefile需要修改QEMU的路徑

 

 

可以通過命令make qemu啟動

啟動非圖形介面,可以使用make qemu-nox

 

 

 

離開介面使用 Ctrl+a x

 

 

 

除錯作業系統(開兩個視窗)

make qemu-gdb (or make qemu-nox-gdb).

In the second terminal, from the same directory you ran make

, run make gdb or gdb You should see something like this,

 

現在就可以除錯了,使用si進行單步除錯

BootLoader開始執行的地方You can set address breakpoints in GDB with the b command. For example, b *0x7c00

 

記得修改配置

將下面的語句放到/home/kexinxin/.gdbinit

add-auto-load-safe-path /home/kexinxin/6.828/xv6-public-test/.gdbinit

替換為xv6的路徑

 

 

 

注意預設只能除錯核心程式碼,要除錯使用者程式碼需要在gdb中使用語句file _filename,以除錯sh.c為例

file _sh

這樣的話就不能除錯核心程式碼,只能除錯使用者程式碼,要切換回去的話,使用

file kernel

注意來回切換的時候斷點會被清除,因此需要重新設定斷點。