[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