[LLVMdev] Why isn't __deregister_frame called anywhere in LLVM?

Yuri yuri at rawbw.com
Wed Sep 22 15:11:41 PDT 2010


I have two JIT runs in the same process.
First one runs fine. During the second JIT run the exception is thrown, 
and process catches SEGV after it is thrown and before it is caught.

In debugger I see that crash occurs in the function 
'classify_object_over_fdes' called from 'init_object' called from 
'search_object' called from '_Unwind_Find_registered_FDE'. Crash occurs 
on invalid FDE object after several iterations over the valid FDE 
objects. So it looks like an invalid FDE object is attached to the valid 
ones. Also when I split two JIT runs into the separate processes nothing 
crashes.

As I understand, __deregister_frame has to be called during code 
removal. I can only see __register_frame call, and not 
__deregister_frame. Why?

Yuri



More information about the llvm-dev mailing list