我知道,只要有足够的上下文,就可以希望在段错误条件下进行 build 性使用(即恢复)。
但是,付出努力值得吗?如果是,在什么情况下?
最佳答案
您真的不能希望从段错误中恢复过来。您可以检测到它发生了,并在可能的情况下转储相关的特定于应用程序的状态,但是您无法继续该过程。这是因为(以及其他)
因此,总的来说,除了以相当突然的方式终止进程之外,没有任何必要诱捕它并做任何事情。试图将(重要的)数据写回到磁盘或继续做其他有用的工作没有任何意义。将状态转储到日志中有一点-许多应用程序都会这样做-然后退出。
可能有用的事情可能是执行exec()您自己的进程,或者让一个监视程序在崩溃的情况下将其重新启动。 (注意:如果您的进程具有> 1个线程,则exec并不总是具有良好定义的行为)
关于linux - 诱捕 "segfault"有什么意义吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1955347/