gpt4 book ai didi

c++ - QT QML/C++ 应用程序在退出时崩溃

转载 作者:行者123 更新时间:2023-11-30 04:35:26 25 4
gpt4 key购买 nike

我有一个 QML/C++ 混合应用程序,它相当复杂,有几个线程在后台更新数据。一切都完美无缺,除了当我使某个 ListView 可见、填充它然后退出应用程序时,调试器在以下位置因断言失败而中断:

QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding()
{
Q_ASSERT(m_prevBinding == 0); //<---- THIS GUY IS THE OFFENDING LINE
Q_ASSERT(m_mePtr == 0);
}

这是堆栈跟踪:

>   QtCored4.dll!qt_message_output(QtMsgType msgType, const char * buf)  Line 2270  C++
QtCored4.dll!qt_message(QtMsgType msgType, const char * msg, char * ap) Line 2328 + 0x12 bytes C++
QtCored4.dll!qFatal(const char * msg, ...) Line 2511 + 0xf bytes C++
QtCored4.dll!qt_assert(const char * assertion, const char * file, int line) Line 2027 + 0x16 bytes C++
QtDeclaratived4.dll!QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding() Line 293 + 0x1e bytes C++
QtDeclaratived4.dll!QDeclarativeCompiledBindingsPrivate::Binding::~Binding() + 0x3d bytes C++
QtDeclaratived4.dll!`eh vector destructor iterator'(void * ptr, unsigned int size, int count, void (void *)* pDtor) + 0x6b bytes C++
QtDeclaratived4.dll!QDeclarativeCompiledBindingsPrivate::Binding::`vector deleting destructor'() + 0x26 bytes C++
QtDeclaratived4.dll!QDeclarativeCompiledBindings::~QDeclarativeCompiledBindings() Line 274 + 0x33 bytes C++
QtDeclaratived4.dll!QDeclarativeCompiledBindings::`scalar deleting destructor'() + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativeRefCount::release() Line 66 + 0x20 bytes C++
QtDeclaratived4.dll!QDeclarativeCompiledBindingsPrivate::Binding::destroy() Line 328 C++
QtDeclaratived4.dll!QDeclarativeData::destroyed(QObject * object) Line 1000 C++
QtDeclaratived4.dll!QDeclarativeData::destroyed(QAbstractDeclarativeData * d, QObject * o) Line 463 C++
QtCored4.dll!QObject::~QObject() Line 860 + 0x11 bytes C++
QtDeclaratived4.dll!QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation() Line 94 + 0x2a bytes C++
QtDeclaratived4.dll!QDeclarativePropertyAnimation::~QDeclarativePropertyAnimation() Line 1827 + 0x8 bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativePropertyAnimation>::~QDeclarativeElement<QDeclarativePropertyAnimation>() Line 90 + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativePropertyAnimation>::`scalar deleting destructor'() + 0xf bytes C++
QtCored4.dll!QObjectPrivate::deleteChildren() Line 1949 + 0x24 bytes C++
QtCored4.dll!QObject::~QObject() Line 947 C++
QtDeclaratived4.dll!QDeclarativeTransition::~QDeclarativeTransition() Line 168 + 0x9 bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativeTransition>::~QDeclarativeElement<QDeclarativeTransition>() Line 90 + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativeTransition>::`scalar deleting destructor'() + 0xf bytes C++
QtCored4.dll!QObjectPrivate::deleteChildren() Line 1949 + 0x24 bytes C++
QtCored4.dll!QObject::~QObject() Line 947 C++
QtGuid4.dll!QGraphicsObject::~QGraphicsObject() + 0x48 bytes C++
QtDeclaratived4.dll!QDeclarativeItem::~QDeclarativeItem() Line 1504 + 0x1f bytes C++
QtDeclaratived4.dll!QDeclarativeRectangle::~QDeclarativeRectangle() + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativeRectangle>::~QDeclarativeElement<QDeclarativeRectangle>() Line 90 + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativePrivate::QDeclarativeElement<QDeclarativeRectangle>::`scalar deleting destructor'() + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativeViewPrivate::~QDeclarativeViewPrivate() Line 135 + 0x67 bytes C++
QtDeclaratived4.dll!QDeclarativeViewPrivate::`scalar deleting destructor'() + 0xf bytes C++
QtCored4.dll!QScopedPointerDeleter<QObjectData>::cleanup(QObjectData * pointer) Line 62 + 0x20 bytes C++
QtCored4.dll!QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >::~QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >() Line 100 + 0x9 bytes C++
QtCored4.dll!QObject::~QObject() Line 963 + 0x12 bytes C++
QtGuid4.dll!QWidget::~QWidget() Line 1620 + 0x25 bytes C++
QtGuid4.dll!QFrame::~QFrame() Line 242 + 0x8 bytes C++
QtGuid4.dll!QAbstractScrollArea::~QAbstractScrollArea() Line 526 + 0xf bytes C++
QtGuid4.dll!QGraphicsView::~QGraphicsView() Line 1165 + 0xf bytes C++
QtDeclaratived4.dll!QDeclarativeView::~QDeclarativeView() Line 300 + 0x9 bytes C++
MyApplication.exe!QDeclarativeView::`scalar deleting destructor'() + 0x10 bytes C++
QtCored4.dll!QObjectPrivate::deleteChildren() Line 1949 + 0x24 bytes C++
QtGuid4.dll!QWidget::~QWidget() Line 1602 C++
QtGuid4.dll!QMainWindow::~QMainWindow() Line 389 + 0x22 bytes C++
MyApplication.exe!MainWindow::~MainWindow() Line 77 + 0x66 bytes C++
MyApplication.exe!MainWindow::`scalar deleting destructor'() + 0xf bytes C++
MyApplication.exe!boost::checked_delete<MainWindow>(MainWindow * x) Line 34 + 0x21 bytes C++
MyApplication.exe!boost::detail::sp_counted_impl_p<MainWindow>::dispose() Line 78 + 0xc bytes C++
MyApplication.exe!boost::detail::sp_counted_base::release() Line 103 C++
MyApplication.exe!boost::detail::shared_count::~shared_count() Line 221 C++
MyApplication.exe!boost::shared_ptr<MainWindow>::~shared_ptr<MainWindow>() + 0x12 bytes C++
MyApplication.exe!boost::shared_ptr<MainWindow>::reset() Line 387 C++
MyApplication.exe!main(int argc, char * * argv) Line 68 C++
MyApplication.exe!WinMain(HINSTANCE__ * instance, HINSTANCE__ * prevInstance, char * __formal, int cmdShow) Line 131 + 0x12 bytes C++
MyApplication.exe!__tmainCRTStartup() Line 547 + 0x2c bytes C
MyApplication.exe!WinMainCRTStartup() Line 371 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes

编辑:

问题:我怎样才能消除这个问题?我的代码可能有什么问题?没有关于如何发生这种情况的信息。

最佳答案

很抱歉回复晚了,我检查了我的 QML 文件,发现当我在单个“State”元素中定义多个具有相同目标的“PropertyChange”元素时会出现错误。我将同一项目的所有属性更改分组在一个“PropertyChange”元素中,问题就消失了。但这很奇怪,断言失败不是很确定。还尝试使用此信息重现错误,但未能成功。可能还有其他我想念的因素。无论如何谢谢。

关于c++ - QT QML/C++ 应用程序在退出时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com