매우 이상한 문제가 발생했습니다. 여기에 설명 된 것과 비슷합니다 : http://www.qtforum.org/article/20389/problems-with-qlist.html. 헤더 파일에서 QList를 선언 할 때 소스 파일에서 QList를 사용하려고하면 프로그램이 세그먼트 화 오류로 실패합니다. 여기 헤더 파일의 QList 선언으로 인해 소스 파일에서 세그먼트 화 오류가 발생합니다.
은 조각이다 :threads.h 파일 :
class Corr2DThread
{
private:
QList<Sequence *> seqs_;
...
};
threads.cpp 파일 : 그러나
void Corr2DThread::addSequence(Sequence *seq)
{
QLOGX("Thread " << idx_ << " adding new sequence (" << seqs_.size() << "), name: '" << seq->name() << "'"); //this code fails due to call seqs_.size()
QLOGINC;
int activeCount = seq->activeItems();
Q_ASSERT(activeCount > 0);
QLOG("Contains " << activeCount << " active object images");
seqs_.append(seq);
QLOGDEC;
}
내가 QList 로컬, everythig 같이, 괜찮 것을 선언하는 경우 아래 코드에 표시됩니다.
void Corr2DThread::addSequence(Sequence *seq)
{
QList<Sequence *> seqs_;
QLOGX("Thread " << idx_ << " adding new sequence (" << seqs_.size() << "), name: '" << seq->name() << "'");
QLOGINC;
int activeCount = seq->activeItems();
Q_ASSERT(activeCount > 0);
QLOG("Contains " << activeCount << " active object images");
seqs_.append(seq);
QLOGDEC;
}
나는 운/지식없이이 일을하기 위해 많은 시간을 보냈다. 어떤 QT 전문가가 여기에서 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
Qt는 C++ 예외를 발생시키지 않습니다. 오류에 대해 좀 더 자세히 설명해 주시겠습니까? –
분할 오류 –
디버거로 실행 해 보셨습니까? 백 트레이스 란 무엇입니까? –