Emacs bzw GDB



  • Hallo,

    Ich habe ein programm. (hier nur als Beispiel)
    main.cpp
    classe.cpp
    classe.h

    **************EDIT****************
    das folgende sollte man nicht machen, war zu testzwecken.
    ****************************************************
    im main.cpp lade ich mit #include "classe.h"********
    und im classe.h lade ich #include "classe.cpp" *****

    Jetzt hab ich einen fehler im classe.cpp und will ihn mit gdb
    finden. wie mache ich, das er nicht nur die main.cpp debuggert?
    also, das ich auch gleichzeitig die classe.cpp debuggern kann?
    Ich habe ja im classe.cpp keine main.

    Ich habe Emacs und als debugger GDB.
    Debugern mache ich aus dem Emacs.

    Danke fuer TIPPs und Gedanken,
    Ghost 😕



  • ich verstehe jetzt nicht was das mit dem debuggern zu tun hat... aber man bindet normalerweise auch keine .cpp-Dateien per include ein sondern nur die header. Die cpp-dateien kompiliert man dann einzeln (bzw. per makefile) und am ende werden die daraus entstehenden .o-Dateien zusammengelinkt.



  • DrGreenthumb schrieb:

    ich verstehe jetzt nicht was das mit dem debuggern zu tun hat... aber man bindet normalerweise auch keine .cpp-Dateien per include ein sondern nur die header. Die cpp-dateien kompiliert man dann einzeln (bzw. per makefile) und am ende werden die daraus entstehenden .o-Dateien zusammengelinkt.

    Stimmt schon, aber ich muss meine frage anders stellen...
    Wie kann ich eine *.o oder sonst was debuggern, welche keine main() hat?



  • Du musst einfach nur alle Objekt-Dateien mit Debuginformationen kompilieren. Am Ende hast du ja eh alles zusammengelinkt in einem Binary. Da weiß der Debugger eh nicht was vorher in foo.o oder in bar.o war 🙂

    benutz einfach -g oder beim GDB -ggdb als Option beim kompilieren.



  • danke.
    hat geklappt....

    an die variante habe ich nicht gedacht... 🙄


Anmelden zum Antworten