视觉 SIGSEGV 在C++碰撞预防
visual SIGSEGV Crash prevention in C++
通过将 main 的主体放在 __try{} __catch{} 块中来防止 SIGSEGV 崩溃有什么问题?无论如何,不会发生任何不好的事情,因为操作系统会阻止它,而且无论我尝试执行什么操作,我都会失败。我同意这不是正确的做法。但是,除了我可能会使某些操作失败之外,还有什么问题?
通过将 main 的主体放在 __try{} __catch{} 块中来防止 SIGSEGV 崩溃有什么问题?
可能无法保证解决问题。导致SIGSEGV的大多数事情都是由未定义的行为引起的。当程序的行为未定义时,不能保证接收SIGSEGV,也不能保证它的行为符合您的要求。任何行为都是可能的。在这种情况下,最安全的做法通常是终止该过程。
使用__try{} __catch{}
以防万一本身并不一定是错误的,但请注意,这是一个编译器和系统特定的功能,因此,如果您关心这一点,则需要采取其他步骤来保持程序可移植到其他编译器和系统。
此外,让程序崩溃通常具有操作系统可以为您生成核心转储的优势,该转储可用于调试程序以找出崩溃的原因。我对__try{} __catch{}
不是很熟悉,但如果它像常规catch
那样展开堆栈,那么调用跟踪信息就会丢失,这可能会使调试更加困难。
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 碰撞永远不会在我的系统中注册
- 在均匀网格中处理碰撞
- 平台游戏 - 下车时避免与平台碰撞
- AABB 碰撞使实际精灵的大小翻倍
- 具有随机值的多个对象及其碰撞的 SFML
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- Box2D Contact Listener碰撞仅间歇性工作
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 同时与两个片段着色器发生碰撞
- 2D 障碍物碰撞
- 可破坏的网格块会导致奇怪的碰撞
- ptrdiff_t typedef 碰撞 - 谷歌测试和英特尔蟒蛇
- 玩家移动和碰撞之间的交互问题
- 圆形与方形碰撞检测以及需要响应C++ |OpenGL。我的问题就是这个"I need to keep the circle outside the square"
- 视觉 SIGSEGV 在C++碰撞预防
- 球的预测碰撞
- 矢量迭代器在碰撞时不可递增
- Cocos2d-x TiledMap,在调用 getLayer() 获取碰撞层时返回一个 nullptr?