[llvm-dev] SegFault creating a ExecutionEngine
edA-qa mort-ora-y via llvm-dev
llvm-dev at lists.llvm.org
Sat Jun 11 02:35:21 PDT 2016
A small correction, the code to create looks like this:
llvm::ExecutionEngine * ee = llvm::EngineBuilder(
unique_ptr<llvm::Module>(module) )
.setErrorStr( &errStr ) //line 1618
.setEngineKind( llvm::EngineKind::JIT )
.setTargetOptions( topts )
.create();
I presume the exception actually happens on the `create` line, but GDB
is reporting the line marked 1618.
On 11/06/16 11:29, edA-qa mort-ora-y wrote:
> My code to create an ExecutionEngine is segfaulting:
>
> std::string errStr;
> llvm::ExecutionEngine * ee = llvm::EngineBuilder(
> unique_ptr<llvm::Module>(module) )
> .setErrorStr( &errStr ) //line 1618
> .setEngineKind( llvm::EngineKind::JIT )
>
> Where module is a `llvm::Module*`. This is code I'm migrating from 3.3
> to 3.8. Since the deletion error is happening during constructor I'm at
> a bit of a loss as to what I'm doing wrong.
>
> The stack trace from gdb is:
>
> #0 0x00007ffff1195a02 in llvm::SmallPtrSetImplBase::isSmall (this=0x0)
> at /opt/llvm/include/llvm/ADT/SmallPtrSet.h:128
> #1 0x00007ffff11e37d3 in llvm::SmallPtrSetImplBase::erase_imp
> (this=0x0, Ptr=0x68c200) at /opt/llvm/lib/Support/SmallPtrSet.cpp:78
> #2 0x00007ffff14c9174 in llvm::SmallPtrSetImpl<llvm::Module*>::erase
> (this=0x0, Ptr=0x68c200) at /opt/llvm/include/llvm/ADT/SmallPtrSet.h:275
> #3 0x00007ffff14c81cb in llvm::LLVMContext::removeModule
> (this=0x691910, M=0x68c200) at /opt/llvm/lib/IR/LLVMContext.cpp:148
> #4 0x00007ffff1527b7b in llvm::Module::~Module (this=0x68c200,
> __in_chrg=<optimised out>) at /opt/llvm/lib/IR/Module.cpp:57
> #5 0x00007ffff70f9511 in std::default_delete<llvm::Module>::operator()
> (this=<optimised out>, __ptr=0x68c200) at
> /usr/include/c++/5/bits/unique_ptr.h:76
> #6 std::unique_ptr<llvm::Module, std::default_delete<llvm::Module>
>> ::~unique_ptr (this=<optimised out>, __in_chrg=<optimised out>) at
> /usr/include/c++/5/bits/unique_ptr.h:236
> #7 0x00007ffff26318ba in llvm::EngineBuilder::~EngineBuilder
> (this=0x7fffffffced0, __in_chrg=<optimised out>) at
> /opt/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:512
> #8 0x00007ffff70f75a1 in ir_llvm::gen::create_engine
> (this=this at entry=0x7fffffffd1d0) at src/ir/llvm/gen.cpp:1618
> #9 0x00007ffff70f7757 in ir_llvm::gen::execute
> (this=this at entry=0x7fffffffd1d0, m=..., sc="") at src/ir/llvm/gen.cpp:252
> #10 0x000000000041736b in runner::execute
> (this=this at entry=0x7fffffffdbc0, m=std::shared_ptr (count 2, weak 0)
> 0x682200) at src/bin/leaf.cpp:544
> #11 0x0000000000415ac8 in main (argc=3, argv=0x7fffffffdde8) at
> src/bin/leaf.cpp:265
>
--
edA-qa mort-ora-y
http://mortoray.com/
Leaf - the language we always wanted
http://leaflang.org/
More information about the llvm-dev
mailing list