Я читаю несколько книг по ядру, я хочу отладить использование spinlock_t
и подготовил следующий демонстрационный код:
////////////////////////////
// demo/spinlock.c
////////////////////////////
#include <linux/spinlock.h>
struct obj {
spinlock_t spinlock;
}
int demo0() {
struct obj o;
spin_lock_init(o.spinlock);
}
int main(){
demo0();
}
Makefile выглядит так:
######################
# demo/Makefile
######################
demo: spinlock.c
gcc -o spinlock spinlock.c -I../linux-5.6.9/arch/x86/include -I../linux-5.6.9/include
Дерево файлов выглядит следующим образом
├── demo
└── linux-5.6.9
Хотя meke
, оно выдало мне множество ошибок (слишком много, я не могу перечислить их здесь). Кажется, я пропустил несколько G CC CFLAGS или другие.
Как построчно отлаживать код ядра? Большинство результатов Google - это отладка GDB / Qemu в работающем ядре. Есть ли предложения по отладке кода ядра без запуска ядра?