ich bin noch nicht lange ein "QTler". In letzter Zeit habe ich mich aber mal dran gegeben etwas mehr zu tun.
Nun habe ich aber ein höchst merkwürdiges Problem.
Kompiliere ich meinen Code, so kann der Code bis zum Ende erfolgreich kompiliert werden.
Schreibe ich dann aber etwas in mein TextEdit, so schießt sich das Programm und ich bekomme einen Speicherfehler im KDevelop.
Segmentation fault
*** Exited with status 139 ***
Per Connect habe ich das TextEdit mit einem textChanged verpunden, dass eine Methode namens "updateStatuszeile (void)" aufruft.
In dieser wiederum wird eine Methode namens "countWords()" aufgerufen.
Kommentiere ich die "countWords()" komplett aus, läuft das Programm.
Nehme ich den Kommentar weg und setze einen einfachen Zeilenumbruch (also einfach ein "Enter" der Tastatur) in den Code, funktioniert das Compiling wieder und der Code ist lauffähig. Wehe aber ich ändere die "mainform.ui" im QT4 Designer. Wenn ich auch nur eine neue "action" einfüge, bekomme ich den gleichen Fehler (s.o.), nachdem ich eine Tastatureingabe im textEdit gemacht habe. Setze ich wieder einen Zeilenumbruch in den Code, klappt es wieder, bis ich etwas im Designer ändere.
int MainForm::countWords()
{
QString text = textEdit->toPlainText();
text.replace('\n', " ");
text = text.simplified(); //Unnötige Leerzeichen entfernen
int wordtest = text.count( " " ); //Leerzeichen zählen
wordtest++; //Da am Ende das Wort kein Leerzeichen mehr besitzt.
return wordtest;
}
da ich mit QT wirklich noch nicht viel gemacht habe und absoluter newbie auf diesem gebiet bin, habe ich wirklich noch garnicht mit dem debugger gearbeitet.
Wie kann ich mir denn den Inhalt des Stack-Traces auslesen?
Bei mir (Linux/uralt Qt 4.2.3) funktioniert es ebenfalls... was aber noch nicht zwangsläufig heisst, dass es fehlerfrei ist (Pointerbasteleien führen zu undefiniertem Verhalten).