You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LLVM JIT中跨平台Panic系统实现的异常处理问题

在LLVM JIT中实现Panic系统的问题

我需要在基于LLVM JIT的语言中实现一套panic系统(并非真正意义上的异常,但要求将栈回滚至指定位置并销毁局部变量)。由于仅知晓异常机制可实现该行为,因此计划基于异常机制来实现,不能直接使用abort——因为需要返回至调用的C++代码,若函数由其他线程调用,则需返回至调用线程。

我查阅了《Exception Handling in LLVM》文档,尝试了其中三种方法:

  • Itanium ABI:怀疑无法在Windows上运行,因为不存在__cxa_throw,且不清楚其他触发栈回滚的方式
  • LLVM SJLj:不了解其使用方式,曾尝试循环使用jmp_buf,但在MSVC中调用longjmp时导致程序崩溃
  • SEH:无法正常工作,持续提示未处理异常,获悉LLVM JIT中SEH尚未完全实现

目前我找不到在LLVM JIT中实现异常或其他panic系统的可行方案。

内容的提问来源于stack exchange,提问作者MindOfTony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:54:53