在 catch 处理程序中打印异常回溯的可靠方法?

2023-12-11

我想在我的 C++ 程序中启用异常的完整日志记录。我想做的就是在 seh catch handler 中捕获软件/硬件异常,然后打印异常的完整回溯(我主要对异常的起源感兴趣 - 调用堆栈对我来说就足够了)。

__try
{
     difficult_task();
}
__except(my_seh_filter(GetExceptionInformation()))
{
    // How to print full backtrace of exception here?
}

我知道我可以打印调用堆栈(通过StackWalk64 or CaptureStackBackTrace),我可以从中获取异常的地址/上下文GetExceptionInformation。但我不知道如何在 catch 处理程序中获取异常的完整回溯。这似乎是不可能的,因为需要一些特殊的存储来存储异常回溯,因为堆栈展开会更改调用堆栈。 (SEH仅提供寄存器的状态和异常的地址)。


None

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

在 catch 处理程序中打印异常回溯的可靠方法? 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 在 Windows 上不使用 OpenSSL 从 pfx 文件或证书存储中提取私钥

    正如标题所示 我想在不使用 OpenSSL 或任何其他第三方工具的情况下导出我的私钥 如果我需要一个 cer文件或 pfx我可以通过 MMC 或 PowerShell 轻松导出这些文件pkiclient但我找不到获取私钥的方法 https
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Applescript延迟问题

    我正在测试 applescripts 稍后我将在我的 OSX 应用程序中使用它 在单击下面的按钮命令后 我遇到了 6 秒的延迟 经过一些研究 这似乎是一个已知问题 我发现有趣的是 如果我使用商业应用程序 QuicKeys 来执行相同的操作
  • 向数组添加项目时下标超出范围

    我正在尝试用 AD 组的成员填充数组 在尝试将 newArray count 设置为用户名时 我不断收到以下错误 Microsoft VBScript runtime error Subscript out of range 这是相关代码
  • Android以编程方式获取SD卡的ID

    有什么方法可以以编程方式获取 Android 设备中当前 SD 卡的某些特定标识符 序列号 尝试这个 way 1 File input new File sys class mmc host mmc1 String cid director
  • 如何强制对系统类型使用自定义 UITypeEditor

    我有一个自定义 UITypeEditor 用于使用 propertygrid 与我的程序进行颜色选择 但如果我只公开 system drawing color 我似乎无法激活它 我需要用 CustomType 包装 Color 然后它才会调
  • 带有 locationListener 回调的 Android 服务

    我有一个安卓应用程序 根据用户当前的地理位置 我想在后台获取一些远程数据并存储它 我的实现是 在特定的时间间隔 警报会启动我的服务 Service 使用匿名类来查询当前位置并注册一个 locationListener 回调 在调用 onLo
  • 如何填充 BigQuery 中缺失的日期?

    这个问题与如何填充分区数据中缺失的日期和值 但由于该解决方案不适用于 BigQuery 因此我再次发布该问题 我有以下假设的表格 name date val A 01 01 2020 1 5 A 01 03 2020 2 A 01 06 2
  • AngularJS“localStorage.getItem”在$resource中为空

    我有一个有角的 resource用于登录和获取用户信息 登录将用户名和密码发送到服务器并获取不记名令牌 在里面success的函数User login令牌存储在localStorage In getEmail 我将令牌包含在用户电子邮件地址
  • Java 调用 Windows API GetShortPathName

    我想在我的 java 类中使用本机 windows api 函数 我感兴趣的函数是 GetShortPathName http msdn microsoft com en us library aa364989 28VS 85 29 asp
  • Android:在菜单中显示 EditText

    我目前正在开发 Android 的 mp3 库 问题是 我希望用户选择他想要添加的播放列表的名称 有用吗 因此 我在播放列表列表上创建了一个上下文菜单 允许用户在创建 删除 重命名这 3 个选项之间进行选择 我想要做的是 如果用户单击 创建
  • 防止 Spring Boot / Jackson 中的原语到字符串转换[重复]

    这个问题在这里已经有答案了 我们编写了一个Springboot Rest Service 它内部使用Jackson对Rest API的Json输入 输出进行序列化 反序列化 对于 API 输入 输出 我们不希望将原语与字符串进行类型转换 我
  • Python“join”函数类似于unix“join”

    我很好奇是否有像unix版本一样的内置python join函数 参见http linux about com library cmd blcmdl join htmhttps www man7 org linux man pages ma
  • 如何使用 Scala XML 返回空 NodeSeq?

    我正在使用不同的函数分段构建 XML 例如以下示例
  • 学说错误:未找到“Doc​​trine\ORM\EntityRepository”类

    我是 Doctrine 的新手 我正在遵循文档中的示例 当我创建 Repository 类 例如 UserRepository php 并尝试扩展 EntityRepository 类时 我收到以下错误消息 致命错误 在第 10 行的 C
  • 直接从浏览器打印,无需打印弹出窗口[重复]

    这个问题在这里已经有答案了 正如主题中所说 我必须为基于 Web 的应用程序创建一个功能 该功能将允许用户直接发送打印而不提示任何对话框 只需使打印 即单击并打印 变得简单 但不适合我 请建议什么是最好的选择以及我应该如何写它 技术 请建议
  • std::remove 不起作用

    我的测试程序的目标是擦除简单字符串向量中的单元格 如下所示 程序失败 分段错误 static void display std vector
  • 如何使用 PuPHPet 制作 Sequel Pro?

    我刚刚使用 Vagrant 和 Puphpet 设置了一个虚拟机 我知道我有 MySQL 因为我可以mysql在命令行中 我刚刚进行了基本安装 我不知道如何设置我的续集专业版才能访问 我在 Sequel Pro 应用程序上使用 标准 选项
  • Nestjs 到 Azure Windows 应用程序服务 - web.config 设置

    从昨天开始 我一直在尝试将 Nestjs api 部署到 azure 但没有成功 起初 我试图将其推送到 Linux 云服务计划 并能够从 vs code 部署它 在 azure 日志中看到该应用程序已成功启动 但它不会从我的端点返回任何数
  • 迭代简短的固定字符串列表[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在 C 中迭代简短的文字字符串列表 其中所有元素都是预先知道的 的最有效 优雅 惯用的方法是什么 可以用向量来完成 for auto color std vector
  • 如何以编程方式为 UIButton 提供光泽外观?

    我想为某些 iPhone UIButtons 添加 3D 或光泽外观 但这样做时不使用 PNG 或可拉伸图像 我有很多不同形状和大小的按钮 其中有很多颜色是动态生成的 因此预渲染图像在我的情况下不可行 您将如何以编程方式在这些按钮上绘制光泽
  • 在 catch 处理程序中打印异常回溯的可靠方法?

    我想在我的 C 程序中启用异常的完整日志记录 我想做的就是在 seh catch handler 中捕获软件 硬件异常 然后打印异常的完整回溯 我主要对异常的起源感兴趣 调用堆栈对我来说就足够了 try difficult task exc