1. 程式人生 > >gdb+qemu聯合除錯linux-4.15

gdb+qemu聯合除錯linux-4.15

說明

以前使用過eclipse除錯過核心,最近又想用gdb除錯核心,還是比較習慣使用命令操作,但是在搭建除錯核心的gdbqemu過程中,遇到一個問題,想了很多辦法,最後直接感覺到官方下載最新的gdbqemu原始碼安裝,以為除錯核心設定斷點不成功是因為使用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:
    圖1
    [*] Compile the kernel with debug info(選中這個)
  • 取消KASLR
    如下截圖所示:
    圖2
    取消選項:
    [ ] Randomize the address of the kernel image (KASLR)
  • 主要問題
    在gdb裡邊設定斷點後,斷點不起作用,qemu裡執行的系統沒有在相應的斷點處stop,直接執行到掛接檔案系統。