在 C++ 中处理 CPU 异常

2024-01-05

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

我问这个问题主要是出于好奇,我还不想解决现有的问题。 谢谢


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中处理 CPU 异常 的相关文章

  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 如何在加载.NET WinForm应用程序user.config文件时捕获异常?

    有时 在使用默认配置系统的 NET 2 0 WinForm 桌面应用程序中 user config文件将被损坏并且无法再加载 当配置系统尝试加载它时 它会抛出一个System Xml XmlException 抛开 为什么文件首先被损坏 的
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 根据 CRAN,什么是一个好的包名称? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找一个我想发送到 CRAN 的 R 包的好名字 我没有找到任何有关 R 包命名良好实践的信息 那里是一个帖子 https stackov
  • 是否可以为 LaTeX 编写自己的“包”?

    作为一名程序员 我想知道是否可以为 LaTeX 创建自己的包 我需要类似著名的 列表 包的东西 但更能满足我的需求 我正在寻找一个列表解决方案 该解决方案会留意注释行 例如 BEGIN LISTING 3122 END LISTING 31
  • 类和结构之间的保留循环

    假设我有以下代码 struct X let propertyOfTypeY Y class Y var propertyOfTypeX X let y Y let x X propertyOfTypeY y y propertyOfType
  • 可拖动的内部框架类似于谷歌地图

    一直在玩javascript游戏的思想 特别是RTS类型 问题如下 我如何创建一个可拖动的内部框架 类似于谷歌地图 这个想法是 有一个重叠的 UI 下面有一个更大的可拖动地图 有点类似于您常见的 RTS 游戏 然而 我一直在尝试为这样的界面
  • cython 编译 - 导入与 cimport

    Cython 新手 也许这是一个基本问题 考虑两个例子 两者都取自这个博客在这里 http technicaldiscovery blogspot com 2011 06 speeding up python numpy cython an
  • paramiko 中的管道命令

    如何在 paramiko 中运行管道命令 我正在这样做 statement grep thing file grep thing2 tail 1 last msg conn execute statement 我得到的输出grep thin
  • 将 jquery 选择器存储在变量中

    在下面的示例中stored jQuery selector返回错误的值 是否可以存储选择器而不是结果 js代码 storing the jQuery selectors var container container element1 co
  • 验证对象是否存在于 django 视图中而不返回 404 的正确方法是什么?

    我需要验证对象是否存在并返回该对象 然后基于该对象执行操作 在不返回 404 的情况下执行此操作的正确方法是什么 try listing RealEstateListing objects get slug url slug except
  • 在 SvelteKit 中全局导入图像 url

    我正在尝试以通配符方式导入目录中图像的所有 url 并有两个可能的扩展名 import urls from static images png svg 目前该目录中有三个文件 单独导入它们可以正常工作 当我使用此语法时 找不到文件 无法解析
  • 以编程方式访问所有新的 Chrome 通知

    我以前没有编程 Google Chrome 插件的经验 这就是为什么我从这里开始看看我想要完成的事情是否可能 合理 不过 我在编程方面确实拥有相当广泛的经验 我想要的是 当新的 Chrome 通知 你知道系统托盘上方的这些小弹出窗口 弹出时
  • foursquare API 的 IP 地址范围是多少? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在大学的防火墙后面使用虚拟机开发 Web 服务 我需要知道要向我们的 IT 人员提供的 IP 地址范围 以便我们能够访问 foursquare 的
  • Microsoft Graph Api OAuth 返回状态代码 200 而不是 302(不重定向到登录页面)

    获取 Microsoft Graph API 的令牌 这是第一个调用 让身份验证用户 microsoft 并获取调用令牌服务的代码 请求已正确发送 但不是获取状态代码 302 以便可以将其重定向到登录页面 我收到状态代码 200 publi
  • SQL Profiler 可以与 LocalDB 一起使用吗?

    是否可以使用 SQL Profiler 来观察 LocalDB 实例请求的查询 只要您知道正确的服务器名称 就可以像使用所有其他 SQL 版本一样使用 SQL Profiler 您可以使用以下命令找到服务器名称本地数据库 http tech
  • 参数中缺少必需的键“Bucket”

    我正在尝试将一个简单的 lambda 函数部署到 aws 但收到错误参数中缺少必需的键 Bucket 我创建的用户拥有完整的 Lambda S3 Cloudformation 和 Cloudwatch 访问权限 JS 使用严格 module
  • ExtJS 别名与 id

    我不明白的用法alias http docs sencha com extjs 4 2 1 api Ext Class cfg aliasExtJS 中的 id 与 itemId 配置属性对比 应用程序 视图 foo js Ext defi
  • 获取隐藏字段值的代码隐藏

    如何获取隐藏字段的值
  • 使用 Swift 创建 Flutter 项目

    Flutter 允许支持Swift编程语言 我怎样才能整合我的SwiftAndroid Studio 中 Flutter 项目的代码文件 没有添加 创建 Swift 文件的选项 在NewAndroid Studio 中的菜单 我认为更好的方
  • 比较 Java 中的 2 个字符串是否有分隔符

    字符串 1 func1 test1 字符串2 func1 test2 我想将这两个字符串与第一个左大括号 进行比较 因此 对于给定的示例 它应该返回 true 因为两个字符串中直到 的字符串都是 func1 有没有什么方法可以在不分裂的情况
  • 如何在asp.net core中处理cookie过期

    我想知道如何正确处理cookie过期的情况 是否可以执行自定义操作 我想要实现的是 当 cookie 过期时 从当前 cookie 中取出一些信息 并通过该信息重定向到操作参数 是否可以 没有一个好的方法可以实现这一点 如果 cookie
  • 在 C++ 中处理 CPU 异常

    是否有跨平台的方法来处理 CPU 异常 例如分段错误或除以零 可以说 我需要调用一些潜在不安全的函数 例如从插件文件 这可能会导致段错误 或在执行之前无法测试的一些其他问题 我知道 C 标准库有信号处理函数 但我不知道如何使用它们来处理问题