eigenes programm schmiert manchmal ab...



  • hab folgendes problem... mein selbstgeschriebenes linux-programm schmiert beim starten manchmal ab, aber nur manchmal, da kommt dann "fatal error: segmention fault (SDL Parachute deployed)" oder so, ich verwende die SDL und die SDL_sound-Bibliothek... kommt immer bei der stelle, wenn ein paar sound-files in wave dekodiert werden... das komische ist halt, dass es mal kommt und mal nicht... hatte jemand schonmal ähnliche probleme??



  • Klingt nach undefiniertem Verhalten. Hast du vielleicht irgendwo Speicher nicht freigegeben oder so? Im Grunde kann das an vielen Dingen liegen....



  • kommt wenn ja beim programm-start... ich weiß auch in etwa wo, aber da is nix weiter, wo was passieren könnte... naja, mal sehn 🙂



  • herzlich wilkommen in der Welt der wilden Pointer. Irgend wo greift deine Anwendung auf Speicher zu, der nicht ihr gehört. Der Kernel (bzw. die CPU) löst eine Ausnahme aus, einen Segmentation Fault.

    Hier hilft es, wenn du den GDB benutzt, damit kannst du den Fehler leicht lokalisieren.



  • jaja... dumm, wenn man im ctor einer klasse eine funktion zum initialisieren eines members aufruft, die im rahmen des range-checkings des übergebenen parameters eine andere funktion aufruft, die auf das member, das ja noch nicht initialisiert ist, zugreift... fragt mich nicht, wieviele printfs ich dafür in mein programm eingebaut hab, um das zu finden... jetzt läufts einwandfrei...



  • dazu kommt dann noch, dass dieses member an anderer stelle als index für eine deque benutzt wurde, wobei ich hier den []-operator benutzt habe und nicht at(), es erfolgt also auch keine bereichsprüfung, sondern es kommt gleich ein segfault...


Anmelden zum Antworten