llvm异常处理在构建到对象和链接时失败

时间:2013-04-11 05:22:09

标签: gcc llvm

我有一些使用JIT工作正常的异常处理。现在我 生成目标文件并链接它们,但异常处理 桌子似乎不见了。我打电话给_Unwind_RaiseException并得到 结果_URC_END_OF_STACK

我使用TargetMachine::addPassesToEmitFile生成我的目标文件 然后我将生成的文件链接到:

gcc -Wl,--eh-frame-hdr -o prog input.o

我确定我只是缺少一些生成矮人表的选项,但是 我无法弄清楚它是什么。对于我设置的JIT版本 JITExceptionHandling上的JITEmitDebugInfoTargetOptions

为了检查每个步骤,我还发出了LL(LLVM-IR)文件。我验证了这有登陆板/调用intructiosn。然后我使用llc工具,然后使用GCC进行链接。这种组合也不会产生预期的效果。

我错过了哪些选项可以正确执行此操作?

1 个答案:

答案 0 :(得分:0)

我最终在我的人格功能中发现了一个问题。它没有设置正确的选择器和/或有时没有返回正确的返回值。运行时JIT异常处理程序似乎运行方式不同,因此测试将在该运行中传递。