kgdb
kgdb est le nom d'un débogueur du noyau Linux au niveau code source. Un tel débogueur est un outil d'aide au développement de pilotes ou de fonctionnalités du noyau, permettant de comprendre précisément ce qui se déroule réellement dans le cœur du système d'exploitation, de le mettre en pas à pas, et d'agir dessus.
Développé par | Dave Grothe, LinSysSoft Technologies |
---|---|
Système d'exploitation | Linux |
Langues | Anglais |
Type | DĂ©bogueur |
Licence | Licence publique générale GNU version 2 |
Site web | kgdb.linsyssoft.com |
C'est un logiciel libre développé sous licence GNU GPL par Dave Grothe. Le projet est hébergé par SourceForge.net et son développement est soutenu par la société LinSysSoft, qui en fournit par ailleurs un support professionnel sous le nom de produit KGDB Pro.
kgdb est aussi le nom du débogueur du noyau de FreeBSD.
Considérations techniques
Le debug du noyau outillé avec kgdb (la cible, ou target) se fait à distance (debug croisé) à partir d'une seconde machine, avec un simple GNU Debugger standard côté poste de développement (PC hôte, ou host) à travers une liaison série (RS232, câble null modem) ou par Ethernet en TCP/IP.
kgdb est disponible sous Linux pour les architectures de processeurs suivantes : x86, x86-64, PowerPC, ARM, MIPS, et S390.
Historique
kgdb est resté durant de longue années fourni sous forme de patch à appliquer manuellement aux fichiers source du noyau Linux.
Linus Torvalds a en effet longtemps refusé d'intégrer un tel débogueur au noyau Linux, arguant principalement que l'objectif ne devrait pas être de faciliter la vie aux développeurs mais plutôt de répondre aux besoins des utilisateurs, en particulier en leur permettant de remonter plus facilement les problèmes rencontrés à l'usage. D'ailleurs, selon lui, faciliter le développement du noyau n'a aucun intérêt, ne sert pas le projet, et réduire les temps de développement conduit à réduire la qualité[1].
Il a par la suite précisé sa pensée en indiquant que ce n'était tout simplement pas une priorité de Linux, puisqu'il y a beaucoup plus de choses importantes qui se produisent chez les utilisateurs, et qu'il ne reviendrait plus sur ce sujet tant que le patch ne serait pas remis au propre et disponible dans une branche séparée de toute autre fonctionnalité[2].
Cette dernière condition a permis que le patch soit re-conditionné dans une version grandement allégée et nettoyée par Ingo Molnar (en particulier sans le debug par Ethernet en TCP/IP) conçue de manière à avoir un impact minimal sur les sources et le fonctionnement du noyau Linux[3]. Ceci dans le but d'ajouter que par la suite toutes les autres fonctions à ce périmètre minimal, de manière à mieux en maîtriser l'impact.
Kgdb a finalement été accepté et intégré dans le tronc principal par Linus Torvalds, publié dans la première release candidate du noyau 2.6.26-rc1 le [4] (en même temps que le support du PAT pour x86).
Concurrents
kgdb est en passe de devenir la référence des débogueurs du noyau Linux maintenant qu'il y est intégré nativement, donc sans aucun travail de préparation pour le développeur, mais il n'est pas le seul.
- KDB (soutenu par sgi) est son concurrent le plus célèbre, qui ne nécessite pas de travailler à distance, mais ne permet pas le debug au niveau des sources : il impose de travailler au niveau code machine, ce qui n'est pas réellement simple pour un développeur traditionnel, et peu efficace sur une grande quantité de code.
- NLKD est le Novell Linux Kernel Debugger de Novell, qui permet un debug local, mais aussi le debug Ă distance avec le protocole GDB au niveau du code source
- Linice est un projet abandonné de débogueur de niveau source possédant le look and feel du célèbre SoftICE pour Windows.
Notes et références
- 6 septembre 2000 : Réponse de Linus Torvalds expliquant son rejet de kgdb et des débogueurs en général
- 4 février 2008 : Message de Linus Torvalds précisant ses arguments et donnant une condition à l'intégration
- 10 février 2008 : Message d'Ingo Molnar annonçant la disponibilité de son patch nettoyé dit "kgdb light"
- 3 mai 2008 : Message de Linus Torvalds indiquant la sortie du noyau 2.6.26-rc1 et en particulier le merge du support de kgdb dans le noyau
Annexes
Articles connexes
- GNU Debugger
- Debug croisé, développement croisé
- gdbserver
- Noyau Linux
Liens externes
- (en) Wiki de KGDB et KDB, la page officielle de kgdb et kdb pour kernel.org
- (en) Documentation de kgdb and kdb
- (en) « Accueil du projet Kgdb », sur SourceForge.net.
- (en) Page de la société LinSysSoft qui en fournissait le support professionnel avant le merge dans le noyau
- (en) Page de manuel du kgdb de FreeBSD
- DĂ©boguage du noyau Linux avec kgdb sur UNIX Garden