[LLVMdev] LLVM 2.9 - JIT problem on Windows

Óscar Fuentes ofv at wanadoo.es
Thu Nov 24 11:06:21 PST 2011


"Alan Garny" <alan.garny at dpag.ox.ac.uk> writes:

> I have built a shared version of LLVM which I am now able to test in my
> Qt-based application. It all works fine on Windows, Linux and Mac OS X,
> except that whenever I exit my Qt-based application on Windows (everything
> is fine on Linux and Mac OS X), I get a message that reads that "this
> application has requested the Runtime to terminate it in an unusual way".
>
>  
>
> 'My' current LLVM code (see
> https://github.com/opencor/opencor/blob/master/src/plugins/simulation/CoreSi
> mulation/src/coresimulationplugin.cpp) is a shameless copy/paste of the
> HowToUseJIT example (in the examples folder). However, if I comment out line
> #67 of my code (i.e. llvm::InitializeNativeTarget();), then I don't get the
> aforementioned error and my LLVM code still works fine.
>
>  
>
> Now, I may be wrong, but I was under the impression that a call to
> InitializeNativeTarget was recommended, if not compulsory, so. why
> commenting it out not only makes my LLVM code still work, but also prevent
> my application from generating the above error.?!

My bet is that your code is writing through a stray pointer. By removing
the call to InitializeNativeTarget you are simply hiding your bug by
running the code within a context that turns its effects harmless.

OTOH, LLVM 2.9 may be the culprit. In any case, it is time for a
assembler-level debug session :-) You can try using the Windows
equivalent for valgrind and pray that it catches the problem. Or use
valgrind on Linux.



More information about the llvm-dev mailing list