Kgdb

Un article de Wikipédia, l'encyclopédie libre.

kgdb
Développeur Dave Grothe, LinSysSoft Technologies
Langue Anglais
Type Débogueur
Licence GNU General Public License
Site web http://kgdb.linsyssoft.com/

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 drivers 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.

C'est un logiciel libre développé sous Licence GPL par Dave Grothe. Le projet est hébergé par SourceForge 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.

Sommaire

[modifier] Considérations techniques

Le debug du noyau outillé avec kgdb (la cible, ou target) se fait à distance à 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.

[modifier] 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) concûe de manière avec un impact minimal sur les sources et le fonctionnement du noyau Linux [3]. Ceci dans le but ne n'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 3 mais 2008[4] (en même temps que le support du PAT pour x86).

[modifier] 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.

[modifier] Notes

  1. 6 septembre 2000 : Réponse de Linus Torsadas expliquant son rejet de kgdb et des débogueurs en général
  2. 4 février 2008 : Message de Linus Torvalds précisant ses arguments et donnant une condition à l'intégration
  3. 10 février 2008 : Message d'Ingo Molnar annonçant la disponibilité de son patch nettoyé dit "kgdb light"
  4. 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

[modifier] Voir aussi

[modifier] Liens externes


Autres langues