[LLVMdev] A weird, reproducable problem with MCJIT

Christian Schafmeister chris.schaf at verizon.net
Mon Oct 14 12:40:08 PDT 2013


Yaron,

Did you find a way around the problem?

It looks like the problem comes before processFDE because by the time it
gets to processFDE the eh_frame data is already corrupted.

Does ELF and MachO share the same eh_frame format?

I am developing this code in parallel on an Ubuntu Linux system but I
haven't tried to run it on there for a couple of weeks.   I'll bring it
up to date and try my test case on it and we'll see what happens.

Best,

.Chris.



Yaron Keren <yaron.keren at gmail.com> writes:

> Hi,
>
> I had similar problems with EH in ELF in
> RTDyldMemoryManager::registerEHFrames() calling __register_frame().
>
> I'm not sure these problems are related to this problem since your
> crash happens in  RuntimeDyldMachO::registerEHFrames() in its own
> processFDE (there are two functions named processFDE(), one in
> RuntimeDyldMachO.cpp and one in RTDyldMemoryManager.cpp)
>  before RTDyldMemoryManager::registerEHFrames() and __register_frame()
> are called.
>
> It would seem that even if  RTDyldMemoryManager::registerEHFrames()
> and __register_frame() got problematic input (as with the ELF dyn.
> linker) it should not cause a crash in the calling code but either a
> malfunction of exceptions or crash in
> RTDyldMemoryManager::registerEHFrames() / __register_frame(). A crash
> like the one you see should be related
> to RuntimeDyldMachO::registerEHFrames() inputs only.
>
> Yaron
>
>
>
> 2013/10/14 Kaylor, Andrew <andrew.kaylor at intel.com>
>
>     Hi Christian,
>     
>     Thanks for sharing this.
>     
>     Yaron Keren has been investigating some problems in the EH frame
>     registration code recently, and I think this may be related.  It
>     at least sounds similar to the type of variations in behavior
>     based on code size that Yaron was seeing.
>     
>     -Andy
>     




More information about the llvm-dev mailing list