gpt4 book ai didi

c++ - 在 C++ 中处理 CPU 异常

转载 作者:可可西里 更新时间:2023-11-01 18:25:58 28 4
gpt4 key购买 nike

是否有跨平台的方法来处理 CPU 异常,例如段错误或被零除?比方说,我需要调用一些可能不安全的函数(例如从插件文件),这可能会导致段错误,或者我在执行之前无法测试的其他一些问题。我知道,C 标准库有信号处理函数,但我不知道如何使用它们来处理问题以避免程序终止(我想,我不能只跳到有问题的函数执行之前的位置,或者我可以吗?)。在 Windows 下我可以使用 SEH 异常处理程序,但我不能在 Linux 或任何其他操作系统下这样做。使用我自己的异常处理程序来处理这些问题怎么样,Windows/Linux 之间有多少不同?这甚至可能吗(通过汇编程序 - 让我们说只是在 x86 平台上)?

我问这个问题主要是出于好奇,我还没有尝试解决现有问题。谢谢

最佳答案

libsigsegv是一个用于处理段错误和堆栈溢出的跨平台库。然而,在绝大多数情况下,当您检测到段错误时,正确的做法是尽快终止执行,而不是尝试从中恢复。段错误通常表示错误或损坏的内存,一旦内存损坏,几乎不可能从中恢复。

关于c++ - 在 C++ 中处理 CPU 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4795169/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com