GNU Debugger, également appelé GDB, est le débogueur standard du projet GNU. Il est portable sur de nombreux systÚmes type Unix et fonctionne pour plusieurs langages de programmation, comme le C, C++, Fortran, Ada, Objective-C, et le Go[3]. Il fut écrit par Richard Stallman en 1988. GDB est un logiciel libre, distribué sous la licence GNU GPL.
Histoire
[modifier | modifier le code]GDB a été écrit en premier par Richard Stallman en 1986 en parallÚle de son systÚme GNU, aprÚs que GNU Emacs ait été considéré comme « raisonnablement stable »[1]. GDB est un logiciel libre sorti sous Licence publique générale GNU (GPL). Il s'inspire du débogueur DBX, qui faisait partie de la distribution Unix de Berkeley.
De 1990 à 1993 il a été maintenu par John Gilmore. Maintenant, il est maintenu par le comité de direction GDB qui a été créé par la Free Software Foundation[4].
Caractéristiques
[modifier | modifier le code]GDB fonctionne sur de nombreuses architectures de processeur diffĂ©rentes, et permet le dĂ©bogage distant (par l'intermĂ©diaire dâune liaison sĂ©rie ou dâune connexion IP) dâapplications tournant sur une plateforme cible distincte de la plateforme de dĂ©veloppement. Ceci Ă©ventuellement sur deux types de processeurs diffĂ©rents.
GDB permet de dĂ©boguer un programme en cours dâexĂ©cution (en le dĂ©roulant instruction par instruction ou en examinant et modifiant ses donnĂ©es), mais il permet Ă©galement un dĂ©bogage post-mortem en analysant un fichier core qui reprĂ©sente le contenu dâun programme terminĂ© anormalement.
Interfaces utilisateur
[modifier | modifier le code]Lâinterface de GDB est une simple ligne de commande, mais il existe des applications frontales qui lui offrent une interface graphique beaucoup plus conviviale. Lâutilitaire ddd par exemple permet de cliquer sur une ligne de code directement dans le listing pour y placer un point dâarrĂȘt alors que GDB seul nĂ©cessite la saisie du numĂ©ro de ligne. GDB est souvent invoquĂ© en arriĂšre-plan par les environnements de dĂ©veloppement intĂ©grĂ© comme Eclipse[5].
Débogage à distance
[modifier | modifier le code]GDB offre un mode « distant » qui peut ĂȘtre souvent utilisĂ© lors d'un dĂ©bogage sur des systĂšmes intĂ©grĂ©s. LâopĂ©ration Ă distance correspond au moment oĂč GDB sâexĂ©cute sur un ordinateur et que le programme en cours de dĂ©bogage sâexĂ©cute sur un autre ordinateur. GDB peut Ă©galement communiquer avec le « stub » distant qui comprend le protocole GDB via un pĂ©riphĂ©rique sĂ©rie ou via le protocole TCP/IP. Un programme de remplacement peut ĂȘtre créé en liant aux fichiers de raccord appropriĂ©s fournis avec GDB, qui implĂ©mentent le cĂŽtĂ© cible du protocole de communication. Il est Ă©galement possible d'utiliser gdbserver pour dĂ©boguer le programme Ă distance sans avoir Ă le modifier.
KGDB utilise Ă©galement le mĂȘme mode pour dĂ©boguer un noyau Linux en cours dâexĂ©cution au niveau source avec gdb. Avec KGDB, les dĂ©veloppeurs de noyau peuvent dĂ©boguer un noyau de la mĂȘme maniĂšre quâils dĂ©boguent des programmes dâapplication. Il permet de placer des points d'arrĂȘt dans le code du noyau, de parcourir le code et Ă©galement d'observer des variables. Sur certaines architectures oĂč les registres de dĂ©bogage matĂ©riel sont disponibles, il est possible de dĂ©finir des points de contrĂŽle qui dĂ©clenchent des points d'arrĂȘt lorsque des adresses de mĂ©moire spĂ©cifiĂ©es sont exĂ©cutĂ©es. KGDB nĂ©cessite un ordinateur supplĂ©mentaire connectĂ© Ă lâordinateur pour ĂȘtre dĂ©boguĂ© Ă lâaide dâun cĂąble sĂ©rie ou Ethernet. Sur le systĂšme d'exploitation FreeBSD, il est Ă©galement possible de dĂ©boguer en utilisant l'accĂšs direct Ă la mĂ©moire Firewire.
Notes et références
[modifier | modifier le code]- « Richard Stallman lecture at the Royal Institute of Technology, Sweden (1986-10-30) » (consulté le ) : « Then after GNU Emacs was reasonably stable, which took all in all about a year and a half, I started getting back to other parts of the system. I developed a debugger which I called GDB which is a symbolic debugger for C code, which recently entered distribution. Now this debugger is to a large extent in the spirit of DBX, which is a debugger that comes with Berkeley Unix. »
- â (en) JoĂ«l Brobecker (d), « GDB 16.3 released! », (consultĂ© le )
- â « Supported Languages (Debugging with GDB) », sur sourceware.org (consultĂ© le )
- â (en) « GDB Steering Committee » (consultĂ© le )
- â (en) Norman Matloff et Peter Jay Salzman, The Art of Debugging with GDB, DDD and Eclipse, No Starch Press, , 264 p. (ISBN 978-1-59327-174-9, lire en ligne).
Annexes
[modifier | modifier le code]Bibliographie
[modifier | modifier le code]- (en) Richard Stallman, Roland Pesch, Stan Shebs et al, Debugging with GDB : The GNU Source-Level Debugger, Free Software Foundation, , 10e éd., 616 p. (ISBN 978-0-9831592-3-0)
- (en) Arnold Robbins, GDB Pocket Reference, O'Reilly Media, , 1re éd., 78 p. (ISBN 978-0-596-10027-8, lire en ligne)
Articles connexes
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en) GDB Wiki
- (en) Code source
- (en) Aide-Mémoire

