在 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 处理程序中打印异常回溯的可靠方法? 的相关文章

  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • 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