2013-03-26 66 views
0

我正在用QLibrary加載外部dll。在某些情況下,dll只會崩潰(seg。fault)。該DLL不會拋出異常。處理這個問題的最好方法是什麼?我讀到我需要在單獨的進程/線程中運行。這是唯一的選擇嗎?c + + Qt:從dll捕捉段錯誤

乾杯, 米。

+3

最好的方法是找到並解決崩潰。 – 2013-03-26 10:12:47

+0

如果你不控制外部庫,那麼是的,單獨的進程(不是線程)是唯一的選擇。 – 2013-03-26 10:41:14

+1

但是,由於無效參數傳遞到庫中,它可能會崩潰。 – jopa 2013-03-26 11:08:08

回答

1

不幸的是,你無法用segfault做任何事情,你可以嘗試在單獨的線程中運行崩潰的代碼,但這有可能讓你泄漏資源或者在應用程序中出現大量不一致的狀態。

如果.dll是你的,我建議嘗試修復段錯誤,如果它不報告它爲bug並嘗試解決它。