Me estoy cansando de tener que mantener mi código fuente intacto hasta que termine de depurarlo. Cada vez que cambio mi código, GDB comienza a quejarse al respecto:Incrustar el código fuente de un programa en su binario usando GCC para uso posterior de GDB
advertencia: el archivo fuente es más reciente que el ejecutable.
hasta que lo vuelva a compilar, lo que no siempre se puede hacer rápidamente. Creo que sería genial si fuera posible incluir el código fuente de un programa en su binario y hacer que GDB lo use en lugar de su versión actualizada.
¿Alguien podría sugerir una forma de hacerlo? ¿Se ha implementado esto en absoluto?
Seguramente no tengo suficiente tiempo/habilidad/paciencia/necesidad de implementarlo como una nueva característica, sin embargo, estoy bastante sorprendido de que aún no se haya implementado. Aunque estoy de acuerdo en que en la mayoría de los casos no debería ser necesario, a veces puede ser de alguna utilidad. Por ejemplo, inicio un depurador con mi viejo binario para descubrir qué está mal. Localizo el origen del problema, pero luego, justo después de haber escrito la mitad del código y de guardarlo, la sesión de GDB falla debido a un simple error tipográfico. ¡Ahora tendré que arreglar el código sin la ayuda del depurador o retrotraerlo, reconstruir el programa, ejecutar GDB y deshacer los cambios! – undercat
@vovick: hay dos razones al menos. Una es histórica: los copiosos recursos disponibles ahora no siempre estaban disponibles, y las personas sentían (probablemente con razón) que era mejor no saturar el código depurable con la fuente real porque requeriría demasiado espacio de disco y memoria. En los viejos tiempos, era bastante difícil incluir el programa en la memoria, y mucho menos agregar la información de depuración adicional, etc. El otro es práctico: a las personas no les resulta tan difícil mantener disponible la fuente relevante como para justificar el esfuerzo para hacer lo que sugieres. –