Programm stürzt nach Ende ab



  • Ich hab folgendes Problem:
    Mein Programm funktioniert so weit, allerding stürzt es ab, wenn es fertig durchgelaufen ist (also quasi beim Verlassen der main). Der Absturz äußert sich durch die Windowsfehlermeldung "xyz.exe funktioniert nicht mehr".

    Woran könnte sowas liegen?
    Bzw. wie könnte ich den Fehler finden?

    Der Code ist zu lang, um ihn hier zu posten.



  • double delete
    delete vs delete[]
    Segfault in einem deiner Destruktoren
    etc.
    Höchstwahrscheinlich baust du mit i-welchen Pointern Mist.
    Falls das nicht hilft: kompilierbares Minimalbeispiel.



  • Ein Debugger sollte dir genau sagen können wo und warum es abstürzt.



  • ok, danke für eure Tipps. Ich hab den Fehler gefunden:

    Ich hab ein Objekt by value übergeben (obwohl ich es by reference übergeben wollte), wodurch es dann zu double deletes kam. (Einen Copy-Constructor hatte ich nicht geschrieben...)



  • Ramanujan schrieb:

    (Einen Copy-Constructor hatte ich nicht geschrieben...)

    Dann mache ihn wenigstens unbrauchbar, entweder mit delete oder als private.



  • Mit unique_ptr wäre das nicht passiert 😃
    (;) @volkard)



  • hustbaer schrieb:

    Mit unique_ptr wäre das nicht passiert 😃
    (;) @volkard)

    Meine bekannte Abneigung gegen smart pointers ist viel weniger.

    Ich lehne Default-Konstruktoren und Copy voll ab. Immer wegmachen! Nur hinmachen, wenn Bedarf(von außen) und Sinnhaftigkeit(in der Klase) ist.

    Damit wäre ja schon nix passiert.

    Hatte schon die andere Antwort in der Tastatur, aber mich nochmal besonnen, weil Du es bist, hustbaer, den ich ernst nehme (und den bekannten Namen gerade noch so erblickz hatte). Zur Erheiterung, was ich fast abgeschickt hätte:

    hustbaer schrieb:

    Mit unique_ptr wäre das nicht passiert 😃
    (;) @volkard)

    lol. Mit Java wäre es auch nicht passiert. 🤡



  • EDIT: nicht alles lesen = schlechte idee
    Was ich sagte war:

    Tim06TR schrieb:

    std::thread nicht gejoined?


Log in to reply