Was SIGSEGV, Segmentation fault in Qt
Habe ich ein Qt-Programm zeigt die Daten empfangen über UDP.
Es funktioniert gut für etwa 30 Sekunden, aber nach einer Weile gibt es einen Segmentation Fault und stürzt ab. Diese 30 Sekunden ist auch nicht behoben.
Benutzte ich den debugger und habe diese:
Program received signal SIGSEGV, Segmentation fault.
0x003c6fd4 in ?? () from /usr/lib/libQtGui.so.4
Kann mir jemand sagen, wo der Fehler sein könnte?
Wenn Sie herunterladen und verwenden Sie die debug-version von libQT, sollten Sie in der Lage, um zu sehen, in der stacktrace, wo genau stürzt es ab. Hinweis installieren Sie die
qt-debug*.rpm
wenn Sie auf einem rpm-system.InformationsquelleAutor user269037 | 2010-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es bedeutet, dass Ihr Programm hat versucht, auf Speicher zuzugreifen, der nicht zu Ihr gehören. Im Grunde, Sie haben einen Zeiger, der einen ungültigen Wert enthält, irgendwo in deinem code - eine häufige Ursache für diesen Fehler ist die Dereferenzierung eines NULL-Zeigers.
Nie denken, dass, bis Sie vollständig bewiesen, es ist kein bug im code.
Es gab keine Fehler in der Qt-code offensichtlich war es ein dummer Fehler meinerseits.
Ich habe den gleichen Fehler und kann immer noch nicht verstehen, was ich tun sollte.
InformationsquelleAutor
Müssen Sie einen debugger (und stellen Sie sicher, dass die Binärdateien mit debug-Informationen) -- überprüfen Sie die stack-trace an der Absturzstelle. Ich würde ziemlich viel davon aus Ihren eigenen code erscheint irgendwo, und das ist der Punkt, mit zu beginnen. Überprüfen Sie die Zuweisungen, Puffer-Größen ...
InformationsquelleAutor Alexander Gessler
Stellen Sie sicher, dass Sie haben, reservierten Arrays, die Zuordnung von Daten zu.
Habe ich ständig diese Fehler, nicht die Zuweisung.
Beispiel, das ich verwendet habe:
Letztere geändert, und es funktionierte:
Viel Glück! 🙂
InformationsquelleAutor user2587316