1. 程式人生 > >linux內核調試環境搭建

linux內核調試環境搭建

amd64 調試 makefile drive png failed tac color 窗口

版本linux4.17 ubuntu18.04
先給系統至少80G內存
1。編譯內核
先配置文件
make mrproper
make menuconfig
我這裏需要的依賴有

 sudo apt install make cmake gcc g++ clang
 sudo apt-get install libncurses5-dev libncursesw5-dev
 sudo apt install ncurses-dev
 sudo apt-get install bison
 sudo apt-get install flex
 sudo apt-get install linux-libc-dev:amd64
 sudo apt-get install libssl-dev

然後窗口調大點
技術分享圖片
打開相關選項:(我看了下好像全默認開啟)
https://blog.csdn.net/ztguang/article/details/52410562
技術分享圖片
技術分享圖片

 Kernel: arch/x86/boot/bzImage is ready  (#1)
FATAL: drivers/scsi/am53c974.o has no symtab?
scripts/Makefile.modpost:92: recipe for target ‘__modpost‘ failed
Makefile:972: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev

sudo apt install libelf-dev
換內核就先修改:
sudo gedit /etc/default/grub
註釋第二行:
技術分享圖片
更新
sudo update-grub2
技術分享圖片
///////////////////////
拷貝被調試機上編譯出來的vmlinux 到調試機上,與內核源碼同級目錄(內存足夠多把編譯生成的中間文件也可以一起拷貝)
然後
第一步建立串口通信
技術分享圖片
測試
技術分享圖片
開啟調試環境
打開 /boot/grub2/grub.cfg 文件,選擇需要啟動的內核版本,在尾部添kgdbwait kgdboc=ttyS0,115200
第一個菜單
技術分享圖片
對應
技術分享圖片
第二個菜單
技術分享圖片
對應
技術分享圖片
根據需要內核版本自定義設置
這裏默認第一個菜單對一項
重啟系統會斷下
技術分享圖片
調試機
進入系統源碼目錄
gdb vmlinux
技術分享圖片
set remotebaud 115200 目前其實沒有用

target remote /dev/ttyS0
還是有點問題 可能是符號也要拷貝吧
技術分享圖片
https://blog.csdn.net/ztguang/article/details/52410562
https://blog.csdn.net/u013470224/article/details/51314231
https://blog.csdn.net/swingwang/article/details/72331196

linux內核調試環境搭建