GDB調試qemu-kvm
前面幾篇博文都是記錄一些kvm相關包編譯安裝及使用,但都沒深入去代碼看看。看源碼在配合上相關原理才能更好的理解kvm。但qemu-kvm的代碼量很多,對我來講直接看源碼收獲甚少,所以找了個調試工具——GDB來配合閱讀代碼。接下來記錄下GDB的使用。
1、qemu-kvm添加debug參數
http://www.cnblogs.com/grglym/p/7896266.html
上面鏈接的這篇博文中已經有提到編譯安裝qemu-kvm了,這里就不在記錄。主要不同的是為了實現debug,需要在./configure時添加debug的相關配置參數;
./configure --prefix=/usr --enable-debug-tcg --enable-debug
圖 1
make make install
2、開啟GDB調試
執行如下指令開啟調試,指令中qcow2文件執行創建。如圖2所示
gdb --args qemu-system-x86_64 -m 1024 -hda test1.qcow2 -cdrom ubuntu-14.04.5-desktop-amd64.iso -boot d --nographic
圖 2
3、斷點設置
首先需要在源碼中找到你想查看的函數名,然后在(gdb)中輸入
break 函數名
這樣既可實現斷點設置,如圖3所示。
圖 3
設置完斷點后,可輸入start開啟調試, 輸入字符“c”是繼續執行;輸入layout src則是查看源代碼。
圖 4
圖 5
4、總結
以上即為利用GDB來調試qemu-kvm的過程,顯然調試過程還不是很人性化,所以需要在源碼里面添加代碼作為輸出更好的理解代碼過程。