Как отлаживать код ядра без запуска ядра? - PullRequest
0 голосов
/ 21 июня 2020

Я читаю несколько книг по ядру, я хочу отладить использование 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 в работающем ядре. Есть ли предложения по отладке кода ядра без запуска ядра?

...