【发布时间】:2012-09-13 16:43:42
【问题描述】:
我偶然发现了segvcatch 库,它承诺将段错误和浮点错误包装到适当的异常中。
使用这个库是安全的,如果我添加所有捕获的段错误将仅是空指针访问的前提条件(即,没有数组溢出或无效指针可能在段错误之前完全搞砸内存,无论如何都会导致未定义的行为) ?捕获 nullptr 段错误后,程序是否仍具有定义的语义?浮点错误呢?他们表现得更好/不同吗?
旁注:请不要让 cmets 声明任何产生段错误的程序都是格式错误的,应该调试/修复。我知道,我同意。不过,我对这个问题很感兴趣。
【问题讨论】:
-
这个 segvcatch 是个奇怪的东西。它有效吗?是否需要任何费用(性能方面)?
-
@Walter:好吧,至少它附带的测试用例似乎可以在 linux 下运行。
标签: c++ exception-handling segmentation-fault signals