我想從linux內核中的函數start_kernel()調試linux內核。調試linux內核時gdb中的問號符號4.10
這基本上就是我已經做了
從kernel.org 下載4.10內核源提取源後:
make menuconfig後:更改的設置內核調試
make -j4:編譯內核
沒有任何FS
QEMU系統-x86_64的-kernel Linux的4.10 /拱只需發出的命令/ 86 /引導/ bzImage的-append根=的/ dev /零-s -S QEMU的採空因爲它應該:
接着,在另一端,我開始GDB
GDB的vmlinux:和輸出如下
... ...
從vmlinux中讀取符號...完成。
(GDB)目標遠程:使用1234 遠程調試:在?? 1234 0x0000fff0() (GDB)列表
1 /*
2 *
3 * Copyright (C) 1991, 1992 Linus Torvalds
4 *
5 * Enhanced CPU detection and feature setting code by Mike Jagdis
6 * and Martin Mares, November 1997.
7 */
8
9 .text
10 #include <linux/threads.h>
這意味着調試符號的存在。 現在,當我使用命令
(GDB)b的start_kernel
斷點1在0xc1ba986e:文件的init/main.c中,線483
我擊中C(繼續) ,它不會達到斷點。
我在做什麼錯?
謝謝