我想从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
这意味着调试符号的存在。 现在,当我使用命令
(GDB)b的start_kernel
断点1在0xc1ba986e:文件的init/main.c中,线483
我击中C(继续) ,它不会达到断点。
我在做什么错?
谢谢
2017-03-01
anupamD