Le débogueur est un outil permettant de rectifier les erreurs se trouvant dans un programme tiers en cours de développement. Il permet notamment d'exécuter le programme pas à pas, de consulter l'état des variable etc.
Pour pouvoir être utilisé avec gdb, le programme en cours de débogage doit être compilé avec des options spécifiques notamment l'option -g
Le débogage croisé utilise un débogueur spécialement compilé pour pouvoir communiquer avec la cible. La machine de développement (l'hôte) exécute le debogueur qui communique avec le programme gdbserver s'executant sur la cible.
L'option --target
permet d'indiquer la nature de la cible. Pour compiler un débogueur gdb croisé pour ARM:
./configure --target=arm-linux --program-prefix=arm-linux-
gdbserver est executé sur la cible. Il communique avec gdb sur l'hote via un lien Ethernet ou une liaison série RS-232. gdbserver est compilé à partir des sources de gdb, l'option --host
permet de préciser l'architecture de la cible sur laquelle il s'exécutera. Si l'on souhaite compiler à partir d'un PCx86 gdbserver pour qu'il s'exécute sur un ARM:
./configure --build=i686-pc-linux-gnu --host=arm-linux