Seite 1 von 1

Absturz durch simple Anweisung in Konstruktor

Verfasst: 21. März 2006 11:13
von hulk
Hallo ihr alle,

Ich habe einen leeren Konstruktor für meinen XML-Handler geschrieben. Alles funktioniert prächtig. Schreibe ich jedoch eine SEHR simple Anweisung dort hinein, stürzt mein Programm ab. Ich habe keine Ahnung, warum das so ist. Schaut euch am Besten mal den Code an. Vielleicht findet ihr ja was, jedenfalls muss mein Denkfehler sehr dumm sein.


Code: Alles auswählen

class XML_readwrite : public QXmlDefaultHandler {
     public:
          XML_readwrite();
          bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attribs);
          bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName);
          bool characters(const QString &str);
          bool fatalError(const QXmlParseException &exception);

          QString currentText;
          bool writeable;
};

Code: Alles auswählen

XML_readwrite::XML_readwrite() {
     writeable = false;
     currentText = "asdf";
}

bool XML_readwrite::startElement(const QString &, const QString &, const QString &qName, const QXmlAttributes &attribs) {
     if (qName == "mac") writeable=true;
return true; }


bool XML_readwrite::characters(const QString &str) {
     if (writeable) currentText += str;
return true; }


bool XML_readwrite::endElement(const QString &, const QString &, const QString &qName) {
     if (qName == "mac") writeable=false;
return true; }

bool XML_readwrite::fatalError(const QXmlParseException &exception) {
return false; }


Steht die Anweisung "writeable = xxx;" drin, stürzt das Programm ab. Bei einer anderen Anweisung z.B. "currentText = "asdf";" stürzt es NICHT ab, sondern funktioniert wie gewünscht.

Könnt ihr mir helfen?

Hulk

Verfasst: 22. März 2006 11:52
von chronos
Hallo,
ich kann auf den ersten Blick keinen Fehler entdecken.
Hast du schon mal versucht dein Projekt ganz neu zu übersetzen (make clean) manchmal hilft das.

Verfasst: 22. März 2006 12:07
von hulk
hi Chronos.

Ja, das mit dem make clean hat geklappt. Ich habe diese Art von Fehler inzwischen etwas häufiger. Manchmal muss ich den Kompiler dazu zwingen einige Dateien neu zu kompilieren, obwohl sie nicht verändert wurden, damit das Programm nicht mehr abstürzt. Anscheinend verlinkt er einige Änderungen nicht, was dann zu dem Crash führt.