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.hints
et
changer ou ajouter hint.uart.0.flags
les é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 bt
et reprendre le
fonctionnement normal c
: