Hallo,
vielleicht koennt ihr mir helfen. Hab ein Problem mit QStrings aus einer Datei zu lesen.
Der Debugger gibt mir immer die Fehlermeldung "Cannot Access Memory" bei einer Datei die Ich zuvor erst mit fwrite geschrieben hab.
es geht darum zwei Datei-Pfade zu sichern, und beim naechsten starten des Programms wieder auszulesen.
Beim Speichern werden die beiden QStrings aus den beiden QLineEdits "eventInPipe" und eventOutPipe" in newPath kopiert und dann per fwrite binaere in die datei geschrieben.
Das Programm stuerzt immer bei der Methode loadPipePath() ab. Beim debuggen, wenn ich das Array "oldPath" beobachte, steht statt des werts der QStrings immer Cannot Access Memory.
Woher koennte das kommen?
Der Backtrace:
Danke im Vorraus fuer eure Hilfe!
mfg
Twist
vielleicht koennt ihr mir helfen. Hab ein Problem mit QStrings aus einer Datei zu lesen.
Der Debugger gibt mir immer die Fehlermeldung "Cannot Access Memory" bei einer Datei die Ich zuvor erst mit fwrite geschrieben hab.
es geht darum zwei Datei-Pfade zu sichern, und beim naechsten starten des Programms wieder auszulesen.
Beim Speichern werden die beiden QStrings aus den beiden QLineEdits "eventInPipe" und eventOutPipe" in newPath kopiert und dann per fwrite binaere in die datei geschrieben.
Code:
void KDSIEventViewer::savePipePath() {
QString newPath[]={eventInPipe->text(),eventOutPipe->text()};
FILE *path=fopen("./path","ab+");
if(path != NULL) {
if(fwrite(newPath,sizeof(QString),2,path)==2) {
fflush(path);
fclose(path);
}
}
}
bool KDSIEventViewer::loadPipePath() {
QString oldPath[2];
FILE *path=fopen("./path","rb");
if(path !=NULL) {
if(fread(oldPath,sizeof(QString),2,path)!=1) {
eventInPipe->setText(oldPath[0]);
eventOutPipe->setText(oldPath[1]);
fflush(path);
fclose(path);
return true;
}
}
return false;
}
Das Programm stuerzt immer bei der Methode loadPipePath() ab. Beim debuggen, wenn ich das Array "oldPath" beobachte, steht statt des werts der QStrings immer Cannot Access Memory.
Woher koennte das kommen?
Der Backtrace:
Code:
Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1208194512 (LWP 3770)]
[KCrash handler]
#6 0x02389fcc in QLineEditPrivate::setText ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#7 0x0238b3e7 in QLineEdit::setText () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#8 0x0804cedc in KDSIEventViewer::loadPipePath (this=0x88f4f70)
at /home/greiner/kdsieventviewer/src/kdsieventviewer.cpp:156
#9 0x0804d38e in KDSIEventViewer::startEventListen (this=0x88f4f70)
at /home/greiner/kdsieventviewer/src/kdsieventviewer.cpp:64
#10 0x0804eef9 in dsiviewerdlg::qt_invoke (this=0x88f4f70, _id=51,
_o=0xbffe4488) at kdsiviewdlg.moc:88
#11 0x0804cd4e in KDSIEventViewer::qt_invoke (this=0x88f4f70, _id=51,
_o=0xbffe4488) at ./kdsieventviewer.moc:90
#12 0x022ae2aa in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#13 0x022aec3d in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#14 0x0263f7cc in QButton::clicked () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#15 0x02350bd3 in QButton::mouseReleaseEvent ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#16 0x022ea665 in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#17 0x02245a1b in QApplication::internalNotify ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#18 0x0224721a in QApplication::notify ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0x00a84ac3 in KApplication::notify () from /usr/lib/libkdecore.so.4
#20 0x021dd644 in QETWidget::translateMouseEvent ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x021dc14f in QApplication::x11ProcessEvent ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0x021ee07b in QEventLoop::processEvents ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0x0225f135 in QEventLoop::enterLoop ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0x0225efde in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x0224565f in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0x0804c9d2 in main (argc=134550728, argv=0x341162)
at /home/greiner/kdsieventviewer/src/main.cpp:55
Danke im Vorraus fuer eure Hilfe!
mfg
Twist