Qt发布版本退出时错误处理“The inferior stopped because it received a signal from the operating system.”

Qt程序在debug和release下都可以正常运行;并且发布的release也可以运行;但是在点击关闭按键的时候,MainWindow会进入到析构函数中,然后会蹦出对话框,并提示如下错误:

 Signal received

 The inferior stopped because it received a signal from the Operating System.

 Signal name : SIGSEGV

 Signal meaning : Segmentation fault

通过调试跟踪观察,发现提示是安装文件下的QBoxLayoutItem::~QBoxLayoutItem()出错,这是系统的函数,怎么可能呢?

通过网上搜索,一般都是提示是由于指针没有初始化,出现野指针;或者数组越界等;我查看程序没有找到问题所在呀,并且是在MainWinwod析构函数过后出现的?

调试过程省略,

后来解决方法是:在关闭函数 中直接调用TerminateProcess()解决;

HANDLE hDll = GetCurrentProcess();

TerminateProcess(hDll, 0); 

或者直接:TerminateProcess(GetCurrentProcess(), 0);

发布了11 篇原创文章 · 获赞 10 · 访问量 5703

猜你喜欢

转载自blog.csdn.net/bxlover007/article/details/105060068