Servus!
Ich hab hier bei meinem Prog ein Problem:
An einer bestimmten Stelle im Programm tritt auf einmal ein SegmentationFault auf.
Hier mal ein paar Daten:
Wenn ich mit Eclipse debugge kann ich den absürz bis hierhin verfolgen
Mit dem gdb bekomme ich folgende Meldung:
Hier mal der Teil des Programms, in dem es abstürzt:
Ich hab leider keine Ahnung warum dieser Segfault ausgelöst wird. Ich hoffe ihr könnt mir dabei helfen
MrSpider
Ich hab hier bei meinem Prog ein Problem:
An einer bestimmten Stelle im Programm tritt auf einmal ein SegmentationFault auf.
Hier mal ein paar Daten:
Wenn ich mit Eclipse debugge kann ich den absürz bis hierhin verfolgen
Code:
Thread [1] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation fault.)
29 QList<SiedlerStatEntry>::detach() /usr/include/qt4/QtCore/qlist.h:119 0x0804d20d
28 QList<SiedlerStatEntry>::append() /usr/include/qt4/QtCore/qlist.h:420 0x0804d241
27 SiedlerStat::submit() /home/mrspider/workspace/SiedlerStat/siedlerstat.cpp:129 0x0804b342
26 SiedlerStat::qt_metacall() /home/mrspider/workspace/SiedlerStat/debug/moc_siedlerstat.cpp:72 0x0804dfd5
25 QMetaObject::activate() 0xb785ecf4
24 QMetaObject::activate() 0xb785f050
23 QAbstractButton::clicked() 0xb7f1a501
22 <symbol is not available> 0xb7ce3c29
21 <symbol is not available> 0xb7ce5400
20 QAbstractButton::mouseReleaseEvent() 0xb7ce563b
19 QWidget::event() 0xb7a34fbd
18 QAbstractButton::event() 0xb7ce46ff
17 QPushButton::event() 0xb7d77692
16 QApplicationPrivate::notify_helper() 0xb79eb28d
15 QApplication::notify() 0xb79ef4f1
14 QCoreApplication::notifyInternal() 0xb784bc1b
13 <symbol is not available> 0xb7a47b4a
12 QApplication::x11ProcessEvent() 0xb7a47197
11 <symbol is not available> 0xb7a6c684
10 g_main_context_dispatch() 0xb7382cc6
9 <symbol is not available> 0xb7386083
8 g_main_context_iteration() 0xb738663e
7 QEventDispatcherGlib::processEvents() 0xb786ff82
6 <symbol is not available> 0xb7a6c475
5 QEventLoop::processEvents() 0xb784afb2
4 QEventLoop::exec() 0xb784b0bc
3 QCoreApplication::exec() 0xb784d88a
2 QApplication::exec() 0xb79ea6e7
1 main() /home/mrspider/workspace/SiedlerStat/main.cpp:11 0x0804ab70
]
Code:
Starting program: /home/mrspider/workspace/SiedlerStat/SiedlerStat -dograb
[Thread debugging using libthread_db enabled]
[New Thread 0xb704c8d0 (LWP 17929)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb704c8d0 (LWP 17929)]
0x0804d20d in QList<SiedlerStatEntry>::detach (this=0x30) at /usr/include/qt4/QtCore/qlist.h:119
119 inline void detach() { if (d->ref != 1) detach_helper(); }
Hier mal der Teil des Programms, in dem es abstürzt:
Code:
currentEntry = new SiedlerStatEntry(new QDate(dateEdit->date()),
playerPointLines[0]->text(), playerPointLines[1]->text(),
playerPointLines[2]->text(), playerPointLines[3]->text());
data->append(SiedlerStatEntry(*currentEntry));
Code:
class SiedlerStatData : public QList<SiedlerStatEntry>{
public:
SiedlerStatData();
virtual ~SiedlerStatData();
void sort();
};
Code:
/*
* SiedlerStatEntry.cpp
*
* Created on: 04.01.2009
* Author: mrspider
*/
#include "SiedlerStatEntry.h"
int SiedlerStatEntry::idCount = 0;
SiedlerStatEntry::SiedlerStatEntry(QDate *date, int p1, int p2, int p3, int p4) {
this->date = date;
this->id = SiedlerStatEntry::idCount++;
this->points = new int[4];
points[0] = p1;
points[1] = p2;
points[2] = p3;
points[3] = p4;
}
SiedlerStatEntry::SiedlerStatEntry(QDate *date, QString p1, QString p2,
QString p3, QString p4) {
SiedlerStatEntry(date, p1.toInt(), p2.toInt(), p3.toInt(), p4.toInt());
}
SiedlerStatEntry::SiedlerStatEntry(const SiedlerStatEntry &other){
date = other.getDate();
id = other.getId();
points = other.getPoints();
}
SiedlerStatEntry::~SiedlerStatEntry() {
// TODO Auto-generated destructor stub
}
QDate* SiedlerStatEntry::getDate() const {
return date;
}
void SiedlerStatEntry::setDate(QDate *date) {
this->date = date;
}
int* SiedlerStatEntry::getPoints() const {
return points;
}
void SiedlerStatEntry::setPoints(int *points) {
this->points = points;
}
int SiedlerStatEntry::getId() {
return this->id;
}
bool SiedlerStatEntry::operator <(SiedlerStatEntry other) {
return date < other.getDate();
}
bool SiedlerStatEntry::operator ==(SiedlerStatEntry other) {
return this->id == other.getId();
}
Ich hab leider keine Ahnung warum dieser Segfault ausgelöst wird. Ich hoffe ihr könnt mir dabei helfen
MrSpider