segmentation fault 11

MAC OSX spezifisches Forum
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
5mware
Beiträge: 47
Registriert: 14.12.2015 15:16

segmentation fault 11

Beitrag von 5mware »

hi leute,

also ich arbeite an einem programm. kurz um mein anliegen:

wenn ich das programm im IDE einfach teste, läuft alles prima ohne irgendwelche probleme. starten, testen und beenden, alles super.

wenn ich das ding kompiliere und das executable starte läuft auch alles prima.

nur wenn ich das programm beende, gibt er mir unmittelbar nach dem beenden

"segmentation fault" an, über konsole habe ich die info herausbekommen das es

"segmentation fault 11" ist und den thread 0 betrifft. Wohl das Hauptprogramm. Die ist sowas von umfangreich, das ich hier kein code posten kann. ich weiß auch gar nicht wo das problem überhaupt nur liegen könnte.

es werden jede menge pointer und arrays genutzt. Arrays mit Dim/Redim die vor dem Beenden Redim x(0) gemacht werden.

Speicher *mem =allocatememory(),

die vor dem beenden mittels
if *mem:freemem(*mem):endif

freigegeben werden

und dynamische Listen NEwList, die einfach ClearList gemacht werden.

Es gibt Pointer die auf Gadgets und Speicherräume gezeigt werden, die vor dem Beenden einfach genullt werden.

darüber hinaus verwendet die software mehrere threads, die parallel laufen und verschiedene aufgaben im hintergrund erledigen. wenn das programm jedoch beendet werden soll, wird ein "Beenden-Thread" gestartet, die alle anderen Threads killed, alle oben beschriebenen Aufgaben und einiges mehr erledigt, einen Flag für die Hauptschleife fürs Beenden setzt und sich dann auch killed. Die Hauptschleife wird auf Grund des Flags dann gebreaked und das programm wird beendet.

soweit ich das ganze beurteilen kann ist alles im butter. ich habe nicht die leiseste ahnung, wo der fehler liegen könnte.

system ist macos el capitan. x86 compile, pb 5.50.

hat jemand eine idee? irgendein nützliches anhaltspunkt?

Kurt
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: segmentation fault 11

Beitrag von NicTheQuick »

Hast du Threadunterstützung aktiviert? Allgemein ist Threads killen auch nicht gut. Ressourcen können nicht freigegeben werden. Die Threads sollten sich möglichst selbst beenden können. Mittels Semaphoren, Mutexen oder einfach WaitThread() kann das Hauptprogramm darauf warten, dass sich alle Threads beendet haben.
Bild
5mware
Beiträge: 47
Registriert: 14.12.2015 15:16

Re: segmentation fault 11

Beitrag von 5mware »

vielen vielen dank für deine super-idee NicTheQuick.

waitthread wars. die hatte ich gar nicht eingebaut. läuft alles prima. very very thanks.

ich dachte schon, das ich nächte lang nach der ursache suchen muss. puhhh.. glück gehabt. thanks.
Antworten