[lldb-dev] one more bug in evaluation

dawn at burble.org dawn at burble.org
Fri Oct 14 11:12:07 PDT 2011


With these fixes to source/Expression, I'm now getting this error
when building with gcc 4.5.1:

make[4]: Entering directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression'
llvm[4]: Compiling ClangASTSource.cpp for Debug+Asserts build
In file included from /usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/utility:71:0,
                 from /home/dawn/dev/llvm_svnRlldb/include/llvm/ADT/StringRef.h:15,
                 from /home/dawn/dev/llvm_svnRlldb/include/llvm/ADT/StringMap.h:17,
                 from /home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../../clang/include/clang/Basic/IdentifierTable.h:21,
                 from /home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../../clang/include/clang/AST/ASTContext.h:18,
                 from ClangASTSource.cpp:11:
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_pair.h: In instantiation of 'std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl>':
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:383:2:   instantiated from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_destroy_node(std::_Rb_tree_node<_Val>*) [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, std::_Rb_tree_node<_Val>* = std::_Rb_tree_node<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >*]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:990:4:   instantiated from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase(std::_Rb_tree_node<_Val>*) [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, std::_Rb_tree_node<_Val>* = std::_Rb_tree_node<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >*]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_tree.h:614:9:   instantiated from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::~_Rb_tree() [with _Key = const clang::NamespaceDecl*, _Val = std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > >, _KeyOfValue = std::_Select1st<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >, _Compare = std::less<const clang::NamespaceDecl*>, _Alloc = std::allocator<std::pair<const clang::NamespaceDecl* const, lldb_private::SharingPtr<std::vector<std::pair<lldb_private::IntrusiveSharingPtr<lldb_private::Module>, lldb_private::ClangNamespaceDecl> > > > >]'
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_map.h:87:5:   instantiated from here
/usr/lib/gcc/i686-redhat-linux/4.5.1/../../../../include/c++/4.5.1/bits/stl_pair.h:77:11: error: 'std::pair<_T1, _T2>::second' has incomplete type
/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/../../include/lldb/lldb-forward.h:45:9: error: forward declaration of 'struct lldb_private::ClangNamespaceDecl'
/bin/rm: cannot remove `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/Debug+Asserts/ClangASTSource.d.tmp': No such file or directory
make[4]: *** [/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression/Debug+Asserts/ClangASTSource.o] Error 1
make[4]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source/Expression'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb/source'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools/lldb'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/dawn/dev/llvm_svnRlldb/tools'
make: *** [all] Error 1

I guess clang didn't catch this?

-Dawn

On Fri, Oct 14, 2011 at 12:05:17PM +0400, Zajac wrote:
> Greg, it is a regular ivar. There is no even property defined for this. It's declared in @interface section.
> How can I help you to localize the issue? Today I'll try to reproduce the problem with latest source and let you know if it still happen.
> 
> 14.10.2011, ? 10:03, Greg Clayton ???????(?):
> 
> > Until recently we didn't get any information about properties in the debug info, so we were unable to show those at all. Is the ivar you are missing a property? Normal ivars that are declared in the header file (not in the nameless category in the .m file) should show up as expected. 
> > 
> > Newer clang compilers now emit enough debug information for us to support properties but we haven't gotten the support added for those yet.
> > 
> > If you just have a normal ivar, then be sure to check in your "object" is valid.
> > 
> > On Oct 13, 2011, at 8:09 PM, Andrey Zaytsev wrote:
> > 
> >> Hello everyone. Maybe it's fixed already but here is what i found:
> >> I have some objective C object with ivars. But expression "object->myIVar" can't be evaluated. It says "MyObject doesn't a member named 'myIVar'; did you mean myIVar?".
> >> Thank you for consideration.
> >> 
> >> lldb-76
> >> Xcode 4.2
> >> OSX 10.6 
> >> _______________________________________________
> >> lldb-dev mailing list
> >> lldb-dev at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> > 
> 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list