debugging 下级已停止,因为它触发了异常,是否因异常而在线程0中停止...?

hk8txs48  于 2023-01-17  发布在  其他
关注(0)|答案(4)|浏览(194)

调试器中的完整错误消息:

“下级停止,因为它触发了异常。在线程0中因异常0xfbdeba而停止,代码:0xc0000005:0x 0处发生读取访问冲突,标志= 0x 0。"

我可以编译我的代码没有任何错误,但当我运行它或调试,它崩溃,
当我使用一个QMessagebox来显示一条消息时,如果我注解掉这个消息,程序会正常运行。我试图在初始化QApplication后将QMessagebox放在main.cpp中,同样的错误也存在。
我不明白这个错误的原因是什么???
请指导我。我使用QT 4.8.1和msvc 2010编译器。
我想做的是:我尝试更改名为Open-sankore(源代码here...)的开源应用程序,并尝试检查用户是否完成了注册表?如果未向用户显示消息框。
我在UBApplication::exec(..)的第一行添加了一个代码部分。

int UBApplication::exec(const QString& pFileToImport)
{

if(CheckLock() == -1)
{
   QMessageBox myBox;
   myBox.setText("Please Complete The Registration form to continue!");
   myBox.setWindowTitle("Warning!");
   myBox.exec();
}

发生错误后,调试程序转到UBBoardController. h和以下函数

UBBoardView* controlView()
    {
        **return mControlView;**
    }
nfg76nw0

nfg76nw01#

我发现这个错误大多发生在尝试使用未初始化的变量时。

xlpyo6sf

xlpyo6sf2#

我找到了一个答案:这个错误通常发生在一个指针没有初始化的时候。2你应该检查UR代码来找到它。3例如:

T* t;
t=NULL;

只要将指针设置为“空”即可。

jc3wubiy

jc3wubiy3#

当在析构函数中删除未使用的对象时,会发生此错误。

s71maibg

s71maibg4#

遇到相同的错误,原因是“智能指针被销毁两次”。

class A
{
public:
    ~A() {};   // doThing() must be called before the destructor

    void doThing()
    {
        m_edit->deleteLater();
    }
private:
    std::unique_ptr<XTextWidget> m_edit;
}

溶液:只删除行m_edit->deleteLater();

相关问题