gdb+qemu聯合除錯linux-4.15
阿新 • • 發佈:2019-02-18
說明
以前使用過eclipse除錯過核心,最近又想用gdb除錯核心,還是比較習慣使用命令操作,但是在搭建除錯核心的gdb和qemu過程中,遇到一個問題,想了很多辦法,最後直接感覺到官方下載最新的gdb和qemu原始碼安裝,以為除錯核心設定斷點不成功是因為使用apt安裝的gdb和qemu比較舊,安裝新的gdb和qemu後,還是斷點沒起作用,折騰了還幾天,終於找到原因了。下面是作者的環境:
- ubuntu16.04
- GNU gdb (GDB) 8.1.50.20180125-git
- QEMU emulator version 2.11.0
- linux-4.15
但是根據最後的原因,除錯最新的核心可以使用apt安裝的gdb和qemu
核心配置
- 配置除錯資訊
與其他相關配置核心環境的教程一樣,需要配置除錯資訊到vmlinux:
[*] Compile the kernel with debug info(選中這個) - 取消KASLR
如下截圖所示:
取消選項:
[ ] Randomize the address of the kernel image (KASLR) - 主要問題
在gdb裡邊設定斷點後,斷點不起作用,qemu裡執行的系統沒有在相應的斷點處stop,直接執行到掛接檔案系統。