是否有跨平台的方法来处理 CPU 异常,例如分段错误或除以零?可以说,我需要调用一些潜在不安全的函数(例如从插件文件),这可能会导致段错误,或在执行之前无法测试的一些其他问题。我知道,C 标准库有信号处理函数,但我不知道如何使用它们来处理问题以避免程序终止(我想,我不能只是跳转到有问题的函数执行之前的位置,或者我可以吗?)。
在 Windows 下我可以使用 SEH 异常处理程序,但在 Linux 或任何其他操作系统下我不能这样做。使用我自己的异常处理程序来处理这些问题怎么样?Windows/Linux 之间有多少不同?这可能吗(通过汇编器 - 比如说在 x86 平台上)?
我问这个问题主要是出于好奇,我还不想解决现有的问题。
谢谢
libsigsegv http://libsigsegv.sourceforge.net/是一个用于处理分段错误和堆栈溢出的跨平台库。然而,在绝大多数情况下,当您检测到分段错误时,正确的做法是尽快终止执行,而不是尝试从中恢复。段错误通常表示错误或内存损坏,一旦内存损坏,几乎不可能从中恢复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)