我有一些使用JIT工作正常的异常处理。现在我
生成目标文件并链接它们,但异常处理
桌子似乎不见了。我打电话给_Unwind_RaiseException
并得到
结果_URC_END_OF_STACK
。
我使用TargetMachine::addPassesToEmitFile
生成我的目标文件
然后我将生成的文件链接到:
gcc -Wl,--eh-frame-hdr -o prog input.o
我确定我只是缺少一些生成矮人表的选项,但是
我无法弄清楚它是什么。对于我设置的JIT版本
JITExceptionHandling
上的JITEmitDebugInfo
和TargetOptions
。
为了检查每个步骤,我还发出了LL(LLVM-IR)文件。我验证了这有登陆板/调用intructiosn。然后我使用llc
工具,然后使用GCC进行链接。这种组合也不会产生预期的效果。
我错过了哪些选项可以正确执行此操作?
答案 0 :(得分:0)
我最终在我的人格功能中发现了一个问题。它没有设置正确的选择器和/或有时没有返回正确的返回值。运行时JIT异常处理程序似乎运行方式不同,因此测试将在该运行中传递。