今天介紹下如何利用gdb調試qemu
1、首先獲取qemu源碼
獲取地址:https://www.qemu.org/
2、編譯安裝qemu
進入qemu目錄 ./configure --enable-debug
make
make install
安裝之后一般會在/usr/local/bin目錄下生成各種可執行文件,其中我們要調試的是qemu-system-x86_64(當然根據實際情況可能略有差異)
3、安裝虛擬機
比如:
qemu-img create ubuntu.12.04.qcow2 -f qcow2 8G
qemu-system-x86_64 -m 512 -enable-kvm ubuntu12.04.qcow2 ubuntu.iso
之后會跳出一個窗口顯示安裝進度
4、調試虛擬機
gdb qemu-system-x86_64 進入調試窗口
set args -m 1024 -enable-kvm /var/lib/libvirt/images/ubun-qcow2(-m制定內存大小 enable-kvm后跟的是鏡像文件路徑)
break main
start
開始調試即可
//////附簡要GDB 命令
next(n):下一部
step(s):單步進入
bt 列舉函數棧幀
print 查看變量或者內存的值
break 行號或者函數名:下斷點
info breakpoints 查看當前斷點信息
delete 清除所有斷點
continue (c)運行到下一個斷點
print /x var 16進制顯示(var)值
print可以指定顯示的格式,這里用'/x'表示16進制的格式。
可以支持的變量顯示格式有:
x 按十六進制格式顯示變量。
d 按十進制格式顯示變量。
u 按十六進制格式顯示無符號整型。
o 按八進制格式顯示變量。
t 按二進制格式顯示變量。
a 按十六進制格式顯示變量。
c 按字符格式顯示變量。
f 按浮點數格式顯示變量。
print x=4 修改運行時候的變量值
以馬內利