Seite 1 von 1
Segmentation violation
Verfasst: 06.03.2025 17:23
von stevie1401
Ich habe einen Purebasic Websochket-Server auf einem virtuellen Linux-Rechner laufen.
Ab und zu bekomme ich die Meldung:
Segmentation violation
Die Fehlerzeile ist:
Event = WaitWindowEvent(1)
Ich habe KEINE Threads laufen.
Was kann das sein?
Re: Segmentation violation
Verfasst: 06.03.2025 17:52
von Macros
Hallo stevie,
die Fehlermeldung besagt, dass dein Programm auf Speicher zugreifen will, auf den es nicht zugreifen darf.
Und hier die Krux: Das ist meist ein Folgefehler.
Irgendwo hast du im Speicher an eine falsche Stelle geschrieben. Und wenn du Pech hast erwischt das dann genau einen Speicherbereich in dem sich das Programm z.B. merkt wo es wieder an den Schleifenanfang kommt. Und dann steht da eine ganz falsche Adresse und dein Programm stürzt mit obigem Fehler ab.
Was kannst du also tun? Im Prinzip musst du deinen ganzen Code nochmal anschauen und nach stellen suchen bei denen du mit Adressen arbeitest und in den Speicher schreibst. Bei deinem Server ist es nicht unwahrscheinlich, dass der Fehler beim Empfangen von Daten auftreten kann, wenn die z.B. größer sind als der Speicherbereich den du für die Antwort reserviert hast schreibt der Server darüber hinaus.
(XKCD hat den umgekehrten Fall für den Heartbleed Bug mal
schön veranschaulicht)
Purebasic hat inzwischen ein Werkzeug um dir zu Helfen: Den Purefier.Sieh dir die Hilfe dazu an.
Ebenso solltest du falls du Threads verwendest unbedingt den Threadsafe Modus aktivieren.
Re: Segmentation violation
Verfasst: 06.03.2025 19:48
von stevie1401
Na dann gehe ich einmal auf die Suche...
Vielen lieben Danke für die gute Erklärung
