[LLVMbugs] [Bug 4865] New: JIT dwarf exception handling seems broken

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Sep 2 11:55:41 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=4865

           Summary: JIT dwarf exception handling seems broken
           Product: libraries
           Version: 2.6
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Target-Independent JIT
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: lsansonetti at apple.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=3416)
 --> (http://llvm.org/bugs/attachment.cgi?id=3416)
test source

Tested on: Mac OS 10.6, Core 2 Duo, on both i386 and x86_64 modes.

It looks like the dwarf exception tables emitted at runtime for libgcc causes a
crash inside the personality function.

This used to work at least until r72741 on the exact same environment (which
has the new libgcc-compatible runtime), so I suspect a regression in LLVM.

Attached is a simple program (both the source and the bitcode) and the crash is
reproducible using:

$ lli -enable-eh /tmp/t.bc 
0   lli               0x0000000100756962 std::_Rb_tree<llvm::sys::Path,
llvm::sys::Path, std::_Identity<llvm::sys::Path>, std::less<llvm::sys::Path>,
std::allocator<llvm::sys::Path>
>::_M_erase(std::_Rb_tree_node<llvm::sys::Path>*) + 8866
1   lli               0x0000000100757426 std::_Rb_tree<llvm::sys::Path,
llvm::sys::Path, std::_Identity<llvm::sys::Path>, std::less<llvm::sys::Path>,
std::allocator<llvm::sys::Path>
>::_M_erase(std::_Rb_tree_node<llvm::sys::Path>*) + 11622
2   libSystem.B.dylib 0x00007fff8016a14a _sigtramp + 26
3   libSystem.B.dylib 000000000000000000 _sigtramp + 2146000592
4   libstdc++.6.dylib 0x00007fff84b61299 read_encoded_value_with_base(unsigned
char, unsigned long, unsigned char const*, unsigned long*) + 267
5   libstdc++.6.dylib 0x00007fff84b613a1 parse_lsda_header(_Unwind_Context*,
unsigned char const*, lsda_header_info*) + 68
6   libstdc++.6.dylib 0x00007fff84b616e2 __gxx_personality_v0 + 217
7   libSystem.B.dylib 0x00007fff8016ecb1 _Unwind_RaiseException + 145
8   libstdc++.6.dylib 0x00007fff84b61bef __cxa_throw + 91
9   libstdc++.6.dylib 0x0000000100b0010c __cxa_throw + 2079974776
10  lli               0x0000000100454bb2 std::vector<llvm::sys::MemoryBlock,
std::allocator<llvm::sys::MemoryBlock>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::sys::MemoryBlock*,
std::vector<llvm::sys::MemoryBlock, std::allocator<llvm::sys::MemoryBlock> > >,
llvm::sys::MemoryBlock const&) + 30722
11  lli               0x000000010001177d llvm::cl::ValuesClass<int>
llvm::cl::values<int>(char const*, int, char const*, ...) + 7421
12  lli               0x0000000100011248 llvm::cl::ValuesClass<int>
llvm::cl::values<int>(char const*, int, char const*, ...) + 6088
13  lli               0x0000000000000003 llvm::cl::ValuesClass<int>
llvm::cl::values<int>(char const*, int, char const*, ...) + 4294903171
Stack dump:
0.      Program arguments: lli -enable-eh /tmp/t.bc 
Abort trap

I looked at the changes in JITDwarfEmitter.cpp since and tried to revert
r79674, without success.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list