mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-25 11:34:18 +00:00
55 lines
No EOL
976 B
Markdown
55 lines
No EOL
976 B
Markdown
Ci sono varie cose che vanno effettuate per rendere possibile debuggare il kernel con [[gdb]].
|
|
|
|
## Generare un config di debug iniziale
|
|
|
|
Iniziare la compilazione del kernel con [[virtme-ng]], poi interromperla subito con <kbd><kbd>Ctrl</kbd>+<kbd>C</kbd></kbd>:
|
|
```bash
|
|
virtme-ng --build
|
|
```
|
|
|
|
## Abilitare le info di debug
|
|
|
|
Aprire [[menuconfig]]:
|
|
```bash
|
|
make menuconfig
|
|
```
|
|
|
|
Nella sezione *Kernel hacking*, attivare *Kernel debugging*.
|
|
|
|
Nella sezione *Memory Management options*, attivare *Disable heap randomization*.
|
|
|
|
## Ricompilare il kernel
|
|
|
|
Ricompilare il kernel con [[virtme-ng]]:
|
|
```bash
|
|
virtme-ng \
|
|
--verbose \
|
|
--build \
|
|
--config .config
|
|
```
|
|
|
|
## Eseguire il kernel in modalità debug
|
|
|
|
Eseguire il kernel con [[virtme-ng]]:
|
|
```bash
|
|
virtme-ng \
|
|
--run \
|
|
--debug
|
|
```
|
|
|
|
## Connettere gdb al kernel
|
|
|
|
Avviare [[gdb]]:
|
|
```bash
|
|
gdb
|
|
```
|
|
|
|
Caricare i [[simboli di debug]]:
|
|
```gdb
|
|
file vmlinux
|
|
```
|
|
|
|
Connettersi al server [[gdb]] remoto:
|
|
```gdb
|
|
target remote localhost:1234
|
|
``` |