目前,我捕获 SIGSEGV,给自己发一封电子邮件,然后中止 (),这样我就可以获得一个核心文件并调试我的程序。 (如果我没有捕捉到,我就不可能不知道我的特定程序出现了段错误。我的程序在与我自己的服务器不同的服务器上运行。)
是否有任何其他信号我应该捕获以进行调试或出于我应该了解的原因?
最佳答案
是什么让您认为 SEGV 还没有已经破坏您的程序内存以至于发送电子邮件的尝试不会失败?
您应该遵循职责分工的做法,并从一个完全不同的程序中监控您的程序。
只要有一个(非常简单,所以它不太可能失败)程序来检查以确保您的主要程序仍在运行,如果没有,则向您发送该电子邮件。您甚至可以进行纵深防御并运行两个检查器,这两个检查器都检查主程序并相互检查。
如果你像我一样偏执,你甚至可以在不同的机器上运行它们:-)
关于c - 推荐捕捉的信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297062/