Je commence à en avoir marre de devoir garder mon code source intact jusqu'à ce que j'aie terminé son débogage. Chaque fois que je change mon code, GDB commence à se plaindre à ce sujet:Incorporation du code source d'un programme dans son binaire en utilisant GCC pour l'utilisation ultérieure de GDB
avertissement: le fichier source est plus récent que l'exécutable.
jusqu'à ce que je le recompile, ce qui ne peut pas toujours être fait rapidement. Je pense que ce serait génial s'il était possible d'inclure le code source d'un programme dans son binaire et de faire en sorte que GDB l'utilise à la place de sa version à jour.
Quelqu'un pourrait-il suggérer un moyen de le faire? Cela a-t-il été mis en œuvre du tout?
Sûrement je n'ai pas assez de temps/compétence/patience/nécessité de l'implémenter comme une nouvelle fonctionnalité, cependant, je suis assez surpris qu'il n'a pas encore été implémenté. Bien que je sois d'accord que dans la plupart des cas, il ne devrait pas être nécessaire, il peut parfois être utile. Par exemple, je démarre un débogueur avec mon ancien fichier binaire pour trouver ce qui ne va pas. Je localise la source du problème, mais juste après avoir écrit la moitié du code et l'avoir sauvegardé, la session GDB se bloque en raison d'une simple faute de frappe. Maintenant, je vais soit devoir corriger le code sans l'aide du débogueur ou revenir en arrière, reconstruire le programme, exécuter GDB et annuler les changements! – undercat
@vovick: il y a au moins deux raisons. L'un est historique: les ressources abondantes disponibles maintenant n'étaient pas toujours disponibles, et les gens pensaient (probablement à juste titre) qu'il valait mieux ne pas encombrer le code débogable avec la source réelle car cela nécessiterait trop d'espace disque et de mémoire. Autrefois, il était déjà assez difficile de mémoriser le programme - sans parler d'ajouter les informations de débogage supplémentaires, etc. L'autre est pratique: les gens ne trouvent pas si difficile de garder la source disponible pour justifier l'effort dans le faire comme vous le suggérez. –