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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章