Débogage à distance du noyau

FreeBSD / HardenedBSD prend en charge le débogage à distance à l'aide d'une interface série. Étant donné que la plupart des solutions virtuelles prennent en charge les interfaces série, il peut être très pratique de déployer un noyau et de démarrer une session de débogage sur une autre machine.

La configuration suppose deux machines (virtuelles) avec une connexion série (rs232) entre les deux.

Installer le noyau sur test vm

À la fin de la construction, nous devrions avoir un package de noyau disponible sur la machine de construction à l'emplacement suivant:

/usr/local/dmssdwan/build/[Version]/[Architecture]/sets/kernel*.txz

Copiez ce package sur la machine virtuelle de test et installez-le à l'aide de notre commande dmssdwan-update:

dmssdwan-update -ikfr [version] -l /location/from/

Configurer la machine virtuelle de test

Pour se connecter à la machine de test en utilisant kgdb, vous devez vous assurer que certains paramètres sont définis.

Modifiez /boot/device.hintset changer ou ajouter hint.uart.0.flagsles éléments suivants :

hint.uart.0.flags="0xc0"

De plus, /boot/loader.conf.local doit avoir un débit en bauds configuré pour le périphérique série:

comconsole_speed="115200"

Testez votre configuration

Connectez-vous à la machine de test et activez une session de débogage gdb à l'aide des commandes suivantes:

# sysctl debug.kdb.current=gdb
# sysctl debug.kdb.enter=1
db> gdb
Step to enter the remote GDB backend.
db> c (continue)

Ensuite, allez à la machine de construction, assurez-vous qu'elle est installée (pkg install gdb) et allez dans le répertoire où se trouvent les symboles de débogage et démarrez une session, demandez un backtrace btet reprendre le fonctionnement normal c: