Einbetten des Quellcodes eines Programms in seine Binärdatei mit GCC für die spätere Verwendung von GDB

8

Ich bin es leid, meinen Quellcode unberührt zu lassen, bis ich mit seinem Debugging fertig bin. Jedes Mal, wenn ich meinen Code ändere, beginnt GDB sich darüber zu beschweren:

  

Warnung: Quelldatei ist aktueller als ausführbare Datei.

bis ich es neu kompiliere, was nicht immer schnell geht. Ich denke, es wäre großartig, wenn es möglich wäre, den Quellcode eines Programms in seine Binärdatei aufzunehmen und dafür zu sorgen, dass GDB es anstelle seiner aktuellen Version verwendet.

Könnte jemand einen Weg vorschlagen, wie es geht? Wurde das überhaupt umgesetzt?

    
undercat 27.11.2010, 15:38
quelle

1 Antwort

3

GCC ist Open Source - Sie können es beheben. Natürlich müssten Sie LD wahrscheinlich überarbeiten, um die Informationen korrekt zu behandeln, und Sie müssten GDB definitiv reparieren, um die eingebettete Quelle verwenden zu können. Sie würden ein nicht standardmäßiges Format für die Debugging-Informationen verwenden, so dass Sie wahrscheinlich die anderen Werkzeuge ändern müssen, die Objektdateien manipulieren.

Also, die Möglichkeit ist da. Aber es ist einfacher, das Gleiche wie alle anderen auf der Welt zu tun und Ihre Quelle herumzuhalten, bis Sie mit der Fehlersuche fertig sind. Normalerweise können Sie eine einzelne GDB-Sitzung ausführen, während Sie die ausführbare Datei bei Bedarf mehrmals neu erstellen. Und normalerweise ist es am einfachsten, die aktuelle Version des Codes und nicht die Version von gestern zu debuggen. Wenn Sie die gestrige Version debuggen müssen, benötigen Sie den Code von gestern (Sie haben ein gutes VCS, oder?), So dass Sie sehen können, was mit dem Code von gestern falsch war und nicht mit der heutigen modifizierten Version des Codes .

Ich gebe Ihnen die Ehre, die Frage gestellt zu haben - es bedarf einiger Querdenken, um auf die Idee zu kommen. Gut gemacht! Aber in der Praxis ist Ihr Vorschlag entschieden nicht trivial umzusetzen.

    
Jonathan Leffler 27.11.2010, 15:48
quelle

Tags und Links