我有一些异常处理,使用 JIT 可以正常工作。现在我正在生成目标文件并链接它们,但似乎缺少异常处理表。我打电话_Unwind_RaiseException
并得到
_URC_END_OF_STACK
结果。
我使用生成我的目标文件TargetMachine::addPassesToEmitFile
,然后将生成的文件链接到:
gcc -Wl,--eh-frame-hdr -o prog input.o
我确定我只是缺少一些生成 Dwarf 表的选项,但我不知道它是什么。对于我设置
JITExceptionHandling
和JITEmitDebugInfo
打开的 JIT 版本TargetOptions
。
为了检查每个步骤,我还发出了一个 LL (LLVM-IR) 文件。我验证了这有landingpad/invoke intructiosn。然后我使用该llc
工具,然后使用 GCC 进行链接。这种组合也不会产生预期的结果。
我缺少哪个选项来正确执行此操作?