通常當一個foo()有內存問題時,整個程序將只是核心轉儲,崩潰。但是當C核心轉儲發生在foo()內部時,C是否有任何保護方式來保證程序不會崩潰,轉到某個狀態或僅僅返回?C是否得到try&catch來保證沒有核心轉儲會崩潰?
-1
A
回答
0
不能說在try和catch語句中的c,但是你可以寫信號處理程序來捕獲段錯誤。 這是一個鏈接。 How to catch segmentation fault in Linux?
+0
http://stackoverflow.com/questions/2350489/how-to-catch-segmentation-fault-in-linux/2436368#2436368 – KevinDTimm
+0
主要捕獲'SIGSEGV'從不幫助。如果堆棧被搗毀,或者內存管理信息被刪除,混亂或WTF丟失,則沒有機會從中恢復。 – alk
相關問題
- 1. Try/Catch不會阻止崩潰
- 2. 從核心轉儲崩潰中恢復
- 3. 開啓核心/崩潰轉儲編程
- 4. 崩潰存儲到核心數據
- 5. 進程核心轉儲不會在崩潰後創建
- 6. 核心轉儲,Apport會,不,我使用Ubuntu 12.04崩潰報告
- 7. Erlang:如何禁用「崩潰轉儲」和「核心轉儲」生成?
- 8. C++:程序在[memcpy]處發生核心轉儲崩潰
- 9. 異常崩潰程序的try-catch塊
- 10. 崩潰的核心數據驗證
- 11. 保存核心數據導致崩潰
- 12. 核心數據保存崩潰
- 13. 是否有Windows替代UNIX崩潰核心文件
- 14. 是try-catch沒有終於與try-catch一樣嗎?
- 15. 可以使用try ... catch機制來避免內存崩潰嗎?
- 16. 串行端口程序崩潰(無核心轉儲)
- 17. GDB核心轉儲:崩潰後恢復argc argv值
- 18. 崩潰時創建IBM JVM Java核心轉儲
- 19. Windows 2008 R2沒有崩潰轉儲
- 20. 核心數據,綁定,值轉換器:保存時崩潰
- 21. feenableexcept沒有產生核心轉儲
- 22. 核心轉儲信息沒有在STDERR
- 23. 分段錯誤,沒有核心轉儲
- 24. C + Python和核心轉儲
- 25. c分割核心轉儲?
- 26. C#Try-catch沒有發現異常
- 27. C++ Try Catch Block沒有發現異常
- 28. 核心數據崩潰mergeChangesFromContextDidSaveNotification
- 29. CoreMotion崩潰:CLMotion核心,CLGeomagneticModelProvider_Type
- 30. 核心數據崩潰
如果存在內存問題,您希望**它會崩潰。否則,你的程序可能會出現你無法解釋的奇怪行爲。 – dbush
要放大@dbush評論,不幸的是,不能保證「內存問題」實際上會導致C程序崩潰 - 它只會給出錯誤的結果。你所能說的是,碰撞*可能最終會發生。結果也可能是非確定性的,取決於原因,特別是在多線程程序中。 – cdarke
順便說一下,標準C中沒有'try'和'catch'。Windows C支持'__try'和'__except',但這是非標準的。 – cdarke