[cfe-dev] bug in clang c++ parser

Howard Hinnant hhinnant at apple.com
Fri Aug 3 15:03:21 PDT 2012


Thanks, Fix committed revision 161267.

Howard

On Aug 2, 2012, at 6:55 PM, James Gregurich <bayoubengal at mac.com> wrote:

> 
> 
> I just submitted an Xcode 4.5 bug report to apple:  #12020687.
> 
> 
> 
> Since it appears to be crashing in the parsing of C++ symbols in libc++'s abi support, I thought there might be some interest in it from the clang folks.  I'm not sure if this is the correct list to post this, if not let me know which list you want it on. Below is the crash log. If someone has interest in this project, let me know and I'll send it to you. It has a few boost dependencies that you'll have to supply yourself.
> 
> 
> xcode version: Version 4.5 (4G125j)
> 
> Apple clang version 4.0 (tags/Apple/clang-421.10.53) (based on LLVM 3.1svn)
> 
> 
> 
> 
> -James
> 
> 
> 
> Thread 31 Crashed:: <lldb session listener>
> 0   libc++abi.dylib               	0x00007fff8ca35b86 __cxxabiv1::__libcxxabi::__sub::is_function() const + 8
> 1   libc++abi.dylib               	0x00007fff8ca2e20e bool __cxxabiv1::__libcxxabi::__demangle_tree::__make<__cxxabiv1::__libcxxabi::__cv_qualifiers, unsigned int, __cxxabiv1::__libcxxabi::__node*>(unsigned int, __cxxabiv1::__libcxxabi::__node*) + 96
> 2   libc++abi.dylib               	0x00007fff8ca26505 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_type(char const*, char const*, bool, bool) + 115
> 3   libc++abi.dylib               	0x00007fff8ca26677 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_type(char const*, char const*, bool, bool) + 485
> 4   libc++abi.dylib               	0x00007fff8ca27f24 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_operator_name(char const*, char const*, int*) + 1078
> 5   libc++abi.dylib               	0x00007fff8ca2b5da __cxxabiv1::__libcxxabi::__demangle_tree::__parse_nested_name(char const*, char const*) + 730
> 6   libc++abi.dylib               	0x00007fff8ca275a2 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_name(char const*, char const*) + 62
> 7   libc++abi.dylib               	0x00007fff8ca271b0 __cxxabiv1::__libcxxabi::__demangle_tree::__parse_encoding(char const*, char const*) + 40
> 8   libc++abi.dylib               	0x00007fff8ca2b9fe __cxxabiv1::__libcxxabi::__demangle_tree::__parse() + 68
> 9   libc++abi.dylib               	0x00007fff8ca2ba8d __cxxabiv1::__libcxxabi::__demangle(char const*, char*, unsigned long) + 32
> 10  libc++abi.dylib               	0x00007fff8ca2bce6 __cxa_demangle + 112
> 11  com.apple.LLDB.framework      	0x0000000127902b1b lldb_private::Mangled::GetDemangledName() const + 127
> 12  com.apple.LLDB.framework      	0x00000001279f2f4d lldb_private::Symtab::InitNameIndexes() + 209
> 13  com.apple.LLDB.framework      	0x00000001279f368b lldb_private::Symtab::AppendSymbolIndexesWithName(lldb_private::ConstString const&, std::vector<unsigned int, std::allocator<unsigned int> >&) + 103
> 14  com.apple.LLDB.framework      	0x00000001279917c4 ObjectFileMachO::ParseSymtab(bool) + 9752
> 15  com.apple.LLDB.framework      	0x000000012798f128 ObjectFileMachO::GetSymtab() + 132
> 16  com.apple.LLDB.framework      	0x00000001279d32e3 SymbolFileSymtab::CalculateAbilities() + 43
> 17  com.apple.LLDB.framework      	0x00000001279d2319 lldb_private::SymbolFile::GetAbilities() + 29
> 18  com.apple.LLDB.framework      	0x00000001279f0ba4 lldb_private::SymbolFile::FindPlugin(lldb_private::ObjectFile*) + 76
> 19  com.apple.LLDB.framework      	0x00000001279f0e6c lldb_private::SymbolVendor::AddSymbolFileRepresentation(std::tr1::shared_ptr<lldb_private::ObjectFile> const&) + 84
> 20  com.apple.LLDB.framework      	0x00000001279d47be SymbolVendorMacOSX::CreateInstance(std::tr1::shared_ptr<lldb_private::Module> const&) + 2112
> 21  com.apple.LLDB.framework      	0x00000001279f0d2b lldb_private::SymbolVendor::FindPlugin(std::tr1::shared_ptr<lldb_private::Module> const&) + 51
> 22  com.apple.LLDB.framework      	0x0000000127903f88 lldb_private::Module::GetSymbolVendor(bool) + 110
> 23  com.apple.LLDB.framework      	0x0000000127903ebe lldb_private::Module::GetNumCompileUnits() + 66
> 24  com.apple.LLDB.framework      	0x00000001278aeacd lldb_private::BreakpointResolverFileLine::SearchCallback(lldb_private::SearchFilter&, lldb_private::SymbolContext&, lldb_private::Address*, bool) + 121
> 25  com.apple.LLDB.framework      	0x0000000127914a34 lldb_private::SearchFilter::DoModuleIteration(lldb_private::SymbolContext const&, lldb_private::Searcher&) + 346
> 26  com.apple.LLDB.framework      	0x00000001279148a5 lldb_private::SearchFilter::Search(lldb_private::Searcher&) + 127
> 27  com.apple.LLDB.framework      	0x0000000127a192f4 lldb_private::Target::CreateBreakpoint(std::tr1::shared_ptr<lldb_private::SearchFilter>&, std::tr1::shared_ptr<lldb_private::BreakpointResolver>&, bool) + 318
> 28  com.apple.LLDB.framework      	0x0000000127a19413 lldb_private::Target::CreateBreakpoint(lldb_private::FileSpecList const*, lldb_private::FileSpec const&, unsigned int, bool, lldb_private::LazyBool, bool) + 147
> 29  com.apple.LLDB.framework      	0x0000000126b39995 lldb::SBTarget::BreakpointCreateByLocation(lldb::SBFileSpec const&, unsigned int) + 203
> 30  com.apple.LLDB.framework      	0x0000000126b39898 lldb::SBTarget::BreakpointCreateByLocation(char const*, unsigned int) + 58
> 31  com.apple.dt.dbg.DebuggerLLDB 	0x0000000112b81c79 -[DBGLLDBSession _createBreakpointFromFileBreakpoint:] + 150
> 32  com.apple.dt.dbg.DebuggerLLDB 	0x0000000112b8183d -[DBGLLDBSession createBreakpoint:] + 243
> 33  com.apple.dt.dbg.DebuggerFoundation	0x000000011346d41a -[DBGDebugSession _createBreakpointIfNeccessary:] + 77
> 34  com.apple.dt.dbg.DebuggerFoundation	0x000000011346da21 -[DBGDebugSession _handleBreakpointActivationChanged] + 191
> 35  com.apple.dt.dbg.DebuggerLLDB 	0x0000000112b7e76b DBGLLDBSessionThread(void*) + 1778
> 36  com.apple.LLDB.framework      	0x000000012795f55c ThreadCreateTrampoline(void*) + 91
> 37  libsystem_c.dylib             	0x00007fff8db97782 _pthread_start + 327
> 38  libsystem_c.dylib             	0x00007fff8db841c1 thread_start + 13
> 
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list