Une autre option est d'utiliser de la GLACE/JTAG controler, et GDB. Ce "matériel" solution est surtout utilisée avec les systèmes embarqués,
mais par exemple Qemu offre des fonctionnalités similaires à:
départ qemu avec un gdb 'à distance' stub qui est à l'écoute sur localhost:1234' : qemu -s ...
,
ensuite, à l'aide de GDB vous ouvrez le fichier kernel vmlinux
compilé avec les informations de débogage (vous pouvez prendre un coup d'oeil a cette liste de diffusion thread où ils discutent de la unoptimization du noyau).
connectez GDB et Qemu: target remote localhost:1234
voir que vous êtes en direct du noyau:
(gdb) où
#0 cpu_v7_do_idle () at arch/arm/mm/proc-v7.S:77
#1 0xc0029728 in arch_idle () atarm/mach-realview/include/mach/system.h:36
#2 default_idle () at arm/kernel/process.c:166
#3 0xc00298a8 in cpu_idle () at arch/arm/kernel/process.c:199
#4 0xc00089c0 in start_kernel () at init/main.c:713
malheureusement, l'utilisateur de l'espace de débogage n'est pas possible à ce jour avec GDB (pas de liste des tâches d'information, pas de MMU reprogrammation pour voir les différents contextes de processus, ...), mais si vous restez dans le noyau de l'espace, c'est tout à fait conveniant.
-
info threads
va vous donner la liste et les états des différents Processeurs
EDIT:
Vous pouvez obtenir plus de détails sur la procédure dans ce PDF:
Débogage de systèmes Linux à l'aide de GDB et QEMU.