Бейте меня ногами...
От: Sheridan Россия  
Дата: 02.03.10 22:13
Оценка:
Приветствую!
...но я не могу понять куда копать.
Проблема такая: и в релизе и в дебаге приложение рушится сразу после
ui->setupUi(this); (сгенерированное qtcreator'ом) в конструкторе MainWindow.
Я както привык доверять Qt, поэтому думаю что сам гдето напортачил...


проект:
QT += sql \
    core \
    gui
TARGET = x3complex
TEMPLATE = app
CONFIG += qt \
    warn_on \
    console \
    x11 \
    windows \
    resources
BUILDDIR = build/$$TARGET
DESTDIR = $$BUILDDIR/bin
OBJECTS_DIR = $$BUILDDIR/obj
MOC_DIR = $$BUILDDIR/moc
UI_DIR = $$BUILDDIR/ui
RCC_DIR = $$BUILDDIR/rcc
SOURCES += src/main.cpp \
    src/ui/cmainwindow.cpp \
    src/csingletone.cpp \
    src/capplication.cpp \
    src/ui/cdatabaseeditdialog.cpp \
    src/db/cdatabase.cpp \
    src/db/cmaindatabase.cpp \
    src/db/cuserdatabase.cpp \
    src/ui/ceditracedialog.cpp \
    src/ui/controls/cidtablewidgetitem.cpp \
    src/ui/ceditsectordialog.cpp \
    src/ui/ceditratingdialog.cpp \
    src/ui/ceditwaredialog.cpp \
    src/ui/controls/ccolorselect.cpp \
    src/ui/controls/ciconselect.cpp \
    src/ui/controls/cracetablewidgetitem.cpp
HEADERS += src/ui/cmainwindow.h \
    src/st.h \
    src/csingletone.h \
    src/capplication.h \
    src/ui/cdatabaseeditdialog.h \
    src/db/cdatabase.h \
    src/db/cmaindatabase.h \
    src/db/cuserdatabase.h \
    src/ui/ceditracedialog.h \
    src/ui/controls/cidtablewidgetitem.h \
    src/ui/ceditsectordialog.h \
    src/ui/ceditratingdialog.h \
    src/x3data.h \
    src/ui/ceditwaredialog.h \
    src/ui/controls/ccolorselect.h \
    src/ui/controls/ciconselect.h \
    src/ui/controls/cracetablewidgetitem.h
FORMS += src/ui/cmainwindow.ui \
    src/ui/cdatabaseeditdialog.ui \
    src/ui/ceditracedialog.ui \
    src/ui/ceditsectordialog.ui \
    src/ui/ceditratingdialog.ui \
    src/ui/ceditwaredialog.ui \
    src/ui/controls/ccolorselect.ui \
    src/ui/controls/ciconselect.ui
TRANSLATIONS += res/ts/x3complex_ru.ts
RESOURCES += res/x3complex.qrc
INCLUDEPATH += src \
    src/ui \
    src/ui/controls \
    src/db
OTHER_FILES += res/style.css


main
int main(int argc, char ** argv)
{
        __singletone->initialize(argc, argv);
        return __application->run();
}


Макросы синглтона
#include "csingletone.h"

#define __singletone            CSingleTone::instance()
#define __application            __singletone->application()
#define __mainWindow            __singletone->mainWindow()
#define __dbMain                __singletone->dbMain()
#define __dbUser                __singletone->dbUser()
#define __st_code(_var, _class) if(!_var) { _var = new _class(); } return _var;


кусок синглтона
CSingleTone *CSingleTone::instance()
{
    if(_instance) return _instance;
    return new CSingleTone();
}

void CSingleTone::initialize(int argc, char ** argv)
{
    _application = new CApplication(argc, argv);
}

CApplication * CSingleTone::application()
{
    return _application;
}

CMainWindow        * CSingleTone::mainWindow()    { __st_code(_mainWindow, CMainWindow);    }


Кусок capplication
CApplication::CApplication(int argc, char ** argv) : QApplication(argc, argv)
{
    setOrganizationName("sheridan");
    setOrganizationDomain("http://www.sheridan-home.ru/");
    setApplicationName("x3complex");
}

CApplication::~CApplication()
{}

int CApplication::run()
{
    __mainWindow->show();
    return exec();
}

Кусок mainwindow
CMainWindow::CMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CMainWindow)
{
    ui->setupUi(this); // рушится тут
}

Вот что выдает дебаггер
0xb6fdcaf6     mov    (%esi),%cs
0xb6fdcaf8     add    %eax,(%eax)
0xb6fdcafa     add    %dh,(%ecx)
0xb6fdcafc     (bad)  
0xb6fdcafd     xor    %esi,%esi
0xb6fdcaff     mov    $0xffffffff,%ebp
0xb6fdcb04     jmp    0xb6fdcb1b <XSetCommand+63>
0xb6fdcb06     xor    %eax,%eax
0xb6fdcb08     mov    %ebp,%ecx
>>>0xb6fdcb0a     repnz scas %es:(%edi),%al
0xb6fdcb0c     not    %ecx
0xb6fdcb0e     add    %esi,%ecx
0xb6fdcb10     mov    %ecx,%esi
0xb6fdcb12     add    $0x1,%edx
0xb6fdcb15     cmp    %edx,0x4c(%esp)
0xb6fdcb19     jle    0xb6fdcb38 <XSetCommand+92>
0xb6fdcb1b     mov    0x48(%esp),%eax
0xb6fdcb1f     mov    (%eax,%edx,4),%edi
0xb6fdcb22     test   %edi,%edi
0xb6fdcb24     jne    0xb6fdcb06 <XSetCommand+42>
0xb6fdcb26     mov    $0x1,%ecx
0xb6fdcb2b     add    %esi,%ecx
0xb6fdcb2d     mov    %ecx,%esi
0xb6fdcb2f     add    $0x1,%edx
0xb6fdcb32     cmp    %edx,0x4c(%esp)
0xb6fdcb36     jg     0xb6fdcb1b <XSetCommand+63>
0xb6fdcb38     mov    %ecx,0x28(%esp)
0xb6fdcb3c     test   %ecx,%ecx
0xb6fdcb3e     mov    $0x1,%eax
0xb6fdcb43     cmove  %eax,%ecx
0xb6fdcb46     mov    %ecx,(%esp)
0xb6fdcb49     call   0xb6fbd6a4 <malloc@plt>
0xb6fdcb4e     mov    %eax,0x20(%esp)
0xb6fdcb52     test   %eax,%eax
0xb6fdcb54     je     0xb6fdcbfc <XSetCommand+288>
0xb6fdcb5a     mov    0x4c(%esp),%edx
0xb6fdcb5e     test   %edx,%edx
0xb6fdcb60     jle    0xb6fdcbac <XSetCommand+208>
0xb6fdcb62     mov    %eax,%ebp
0xb6fdcb64     xor    %esi,%esi
0xb6fdcb66     jmp    0xb6fdcb91 <XSetCommand+181>
0xb6fdcb68     mov    %eax,0x4(%esp)
0xb6fdcb6c     mov    %ebp,(%esp)
avalon 1.0rc3 rev 315, zlib 1.2.3
build date: 15.02.2010 00:26:03 MSK +03:00
Qt 4.6.1
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.