2013-04-11 58 views
0

我有一些異常處理工作正常使用JIT。現在我是 生成目標文件並鏈接它們,但異常處理 表似乎丟失。我致電_Unwind_RaiseException,並得到 _URC_END_OF_STACKllvm異常處理失敗時,建立對象和鏈接

我產生使用TargetMachine::addPassesToEmitFile和 然後我聯繫我生成的文件我的對象文件:

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

我敢肯定,我只是缺少一些選項生成矮人表,但 我可以」弄清楚它是什麼。對於JIT版本,我在TargetOptions上設置了 JITExceptionHandlingJITEmitDebugInfo

爲了檢查每一步我還發出了LL(LLVM-IR)文件。我證實這有着名的登陸臺/ invoke intructiosn。然後,我使用llc工具,然後使用GCC進行鏈接。這種組合也不會產生預期的結果。

我錯過了哪個選項可以正確執行此操作?

回答

0

我最終發現我的人格功能有問題。它沒有設置正確的選擇器和/或有時不返回正確的返回值。運行時JIT異常處理程序似乎以不同的方式運行,因此測試將通過該運行。

相關問題