[lldb-dev] Assert and crash in DefinitionData

Michael Sartain mikesart at gmail.com
Wed Jul 10 18:42:37 PDT 2013


Turned on dwarf logging, and it looks like it's dying with some of the
protobuf library symbols. The last output is:

206694 1373493358.162653 [4ed3/7f542e5a5740]: (x86_64)
/usr/local/lib/libprotobuf.so.8: SymbolFileDWARF::ResolveTypeUID (die =
0x0006f6ed) DW_TAG_class_type 'ErrorCollector'
 206695 1373493358.162667 [4ed3/7f542e5a5740]: (x86_64)
/usr/local/lib/libprotobuf.so.8: SymbolFileDWARF::ResolveTypeUID (die =
0x0006f6ed) DW_TAG_class_type 'ErrorCollector' resolve parent forward type
for 0x0006f6e3
206696 1373493358.162681 [4ed3/7f542e5a5740]: (x86_64)
/usr/local/lib/libprotobuf.so.8: SymbolFileDWARF::ParseType (die =
0x0006f6ed, decl_ctx = 0x19b3e58 (die 0x0006f6e3)) DW_TAG_class_type name =
'ErrorCollector')

This happens if I try to print several of the protobuf member functions: "p
set_name", "p CopyFrom", "p MergeFrom", etc.

I don't understand a bunch of the code here yet, but this is the bit that's
dying:

1105|   // Notify a C++ record declaration that we've added a member, so it
can
1106|   // update it's class-specific state.
1107|   if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(this))
1108+>    Record->addedMember(D);

addedMember() is being called, but Record has no definition. It calls down
into this, and line 411 dies.

 405| void CXXRecordDecl::addedMember(Decl *D) {
 406|   if (!D->isImplicit() &&
 407|       !isa<FieldDecl>(D) &&
 408|       !isa<IndirectFieldDecl>(D) &&
 409|       (!isa<TagDecl>(D) || cast<TagDecl>(D)->getTagKind() ==
TTK_Class ||
 410|         cast<TagDecl>(D)->getTagKind() == TTK_Interface))
 411+>    data().HasOnlyCMembers = false;
 412|
 413|   // Ignore friends and invalid declarations.
 414|   if (D->getFriendObjectKind() || D->isInvalidDecl())
 415|     return;

This is bit of lldb code that is calling into clang:

1161|     // NOTE: Eventually CXXRecordDecl will be merged back into
RecordDecl and
1162|     // we will need to update this code. I was told to currently
always use
1163|     // the CXXRecordDecl class since we often don't know from debug
information
1164|     // if something is struct or a class, so we default to always use
the more
1165|     // complete definition just in case.
1166|     CXXRecordDecl *decl = CXXRecordDecl::Create (*ast,
1167|
 (TagDecl::TagKind)kind,
1168|                                                  decl_ctx,
1169|                                                  SourceLocation(),
1170|                                                  SourceLocation(),
1171|                                                  name && name[0] ?
&ast->Idents.get(name) : NULL);
1172|
1173|     if (decl)
1174|     {
1175|         if (metadata)
1176|             SetMetadata(ast, decl, *metadata);
1177|
1178|         if (access_type != eAccessNone)
1179|             decl->setAccess (ConvertAccessTypeToAccessSpecifier
(access_type));
1180|
1181|         if (decl_ctx)
1182+>            decl_ctx->addDecl (decl);

If I change the addDecl check to this, I don't crash anymore:

        if (decl_ctx && decl->hasDefinition())
            decl_ctx->addDecl (decl);

Anyone have any insights as to the right approach here?

Thanks.
 -Mike

On Wed, Jul 10, 2013 at 12:05 PM, Michael Sartain <mikesart at gmail.com>wrote:

> I set a breakpoint on main, then type "expr set", and hit this assert:
>
> (lldb) expr set
> lldb:
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/include/clang/AST/DeclCXX.h:553:
> struct DefinitionData &clang::CXXRecordDecl::data(): Assertion
> `DefinitionData && "queried property of class with no definition"' failed.
>
> DefinitionData is NULL. Log file shows the below. Full stacktrace is down
> below as well.
>
> I don't believe I've got any symbols named "set", although this crash
> doesn't happen with a much simpler hello_world test app.
>
> If anyone has any suggestions on where to look, please let me know.
> Otherwise I'll keep poking away here...
> Thanks,
>  -Mike
>
> 8955 1373482599.140844 [66e2/7ff3afd86740]: HandleCommand,
> revised_command_line: 'expr set'
> 8956 1373482599.140854 [66e2/7ff3afd86740]: HandleCommand,
> wants_raw_input:'True'
> 8957 1373482599.140908 [66e2/7ff3afd86740]: HandleCommand, command line
> after removing command name(s): 'set'
> 8958 1373482599.141033 [66e2/7ff3afd86740]: ==
> [ClangUserExpression::Evaluate] Parsing expression set ==
> 8959 1373482599.141054 [66e2/7ff3afd86740]:
> ClangUserExpression::ScanContext()
> 8960 1373482599.141133 [66e2/7ff3afd86740]: Parsing the following code:
> 8961
> 8962 #undef NULL
> 8963 #undef Nil
> 8964 #undef nil
> 8965 #undef YES
> 8966 #undef NO
> 8967 #define NULL (__null)
> 8968 #define Nil (__null)
> 8969 #define nil (__null)
> 8970 #define YES ((BOOL)1)
> 8971 #define NO ((BOOL)0)
> 8972 typedef signed char BOOL;
> 8973 typedef signed __INT8_TYPE__ int8_t;
> 8974 typedef unsigned __INT8_TYPE__ uint8_t;
> 8975 typedef signed __INT16_TYPE__ int16_t;
> 8976 typedef unsigned __INT16_TYPE__ uint16_t;
> 8977 typedef signed __INT32_TYPE__ int32_t;
> 8978 typedef unsigned __INT32_TYPE__ uint32_t;
> 8979 typedef signed __INT64_TYPE__ int64_t;
> 8980 typedef unsigned __INT64_TYPE__ uint64_t;
> 8981 typedef signed __INTPTR_TYPE__ intptr_t;
> 8982 typedef unsigned __INTPTR_TYPE__ uintptr_t;
> 8983 typedef __SIZE_TYPE__ size_t;
> 8984 typedef __PTRDIFF_TYPE__ ptrdiff_t;
> 8985 typedef unsigned short unichar;
> 8986
> 8987
> 8988 void
> 8989 $__lldb_expr(void *$__lldb_arg)
> 8990 {
> 8991     set;
> 8992 }
> 8993
> 8994 1373482599.143049 [66e2/7ff3afd86740]: LayoutRecordType[12] on
> (ASTContext*)0x2d0d650 for (RecordDecl*)0x2d1ea80 [name = '_objc_super']
> 8995 1373482599.143353 [66e2/7ff3afd86740]: LayoutRecordType[13] on
> (ASTContext*)0x2d0d650 for (RecordDecl*)0x2d1ed20 [name = '_message_ref_t']
> 8996 1373482599.145382 [66e2/7ff3afd86740]: FindExternalLexicalDecls[6] on
> (ASTContext*)0x2d0d650 in (TranslationUnitDecl*)0x2d1e3b0 with null
> predicate
> 8997 1373482599.145593 [66e2/7ff3afd86740]: TransformTopLevelDecl(BOOL)
> 8998 1373482599.145772 [66e2/7ff3afd86740]: TransformTopLevelDecl(int8_t)
> 8999 1373482599.145942 [66e2/7ff3afd86740]: TransformTopLevelDecl(uint8_t)
> 9000 1373482599.146113 [66e2/7ff3afd86740]: TransformTopLevelDecl(int16_t)
> 9001 1373482599.146281 [66e2/7ff3afd86740]: TransformTopLevelDecl(uint16_t)
> 9002 1373482599.146451 [66e2/7ff3afd86740]: TransformTopLevelDecl(int32_t)
> 9003 1373482599.146619 [66e2/7ff3afd86740]: TransformTopLevelDecl(uint32_t)
> 9004 1373482599.146803 [66e2/7ff3afd86740]: TransformTopLevelDecl(int64_t)
> 9005 1373482599.146999 [66e2/7ff3afd86740]: TransformTopLevelDecl(uint64_t)
> 9006 1373482599.147183 [66e2/7ff3afd86740]: TransformTopLevelDecl(intptr_t)
> 9007 1373482599.147360 [66e2/7ff3afd86740]:
> TransformTopLevelDecl(uintptr_t)
> 9008 1373482599.147539 [66e2/7ff3afd86740]: TransformTopLevelDecl(size_t)
> 9009 1373482599.147716 [66e2/7ff3afd86740]:
> TransformTopLevelDecl(ptrdiff_t)
> 9010 1373482599.147875 [66e2/7ff3afd86740]: TransformTopLevelDecl(unichar)
> 9011 1373482599.148093 [66e2/7ff3afd86740]:
> ClangExpressionDeclMap::FindExternalVisibleDecls[18] for '$__lldb_arg' in a
> 'TranslationUnit'
> 9012 1373482599.148118 [66e2/7ff3afd86740]:   CEDM::FEVD[18] Searching the
> root namespace
> 9013 1373482599.148145 [66e2/7ff3afd86740]:
> ClangASTSource::FindExternalVisibleDecls[18] on (ASTContext*)0x2d0d650 for
> '$__lldb_arg' in a 'TranslationUnit'
> 9014 1373482599.148161 [66e2/7ff3afd86740]:   CAS::FEVD[18] Searching the
> root namespace
> 9015 1373482599.148374 [66e2/7ff3afd86740]:
> ClangExpressionDeclMap::FindExternalVisibleDecls[19] for '$__lldb_expr' in
> a 'TranslationUnit'
> 9016 1373482599.148400 [66e2/7ff3afd86740]:   CEDM::FEVD[19] Searching the
> root namespace
> 9017 1373482599.148424 [66e2/7ff3afd86740]:
> ClangASTSource::FindExternalVisibleDecls[19] on (ASTContext*)0x2d0d650 for
> '$__lldb_expr' in a 'TranslationUnit'
> 9018 1373482599.148438 [66e2/7ff3afd86740]:   CAS::FEVD[19] Searching the
> root namespace
> 9019 1373482599.148726 [66e2/7ff3afd86740]:
> ClangExpressionDeclMap::FindExternalVisibleDecls[20] for 'set' in a
> 'TranslationUnit'
> 9020 1373482599.148752 [66e2/7ff3afd86740]:   CEDM::FEVD[20] Searching the
> root namespace
>
> (gdb) bt
> #0  0x00007f0800b38425 in __GI_raise (sig=<optimized out>) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #1  0x00007f0800b3bb8b in __GI_abort () at abort.c:91
> #2  0x00007f0800b310ee in __assert_fail_base (fmt=<optimized out>,
> assertion=0x7f080565ec8a "DefinitionData && \"queried property of class
> with no definition\"", file=0x7f0805
> 6cd817
> "/home/mikesart/data/src/llvm.hg/llvm/tools/clang/include/clang/AST/DeclCXX.h",
> line=<optimized out>, function=<optimized out>) at assert.c:94
> #3  0x00007f0800b31192 in __GI___assert_fail (assertion=0x7f080565ec8a
> "DefinitionData && \"queried property of class with no definition\"",
> file=0x7f08056cd817 "/home/mikesar
> t/data/src/llvm.hg/llvm/tools/clang/include/clang/AST/DeclCXX.h",
> line=553, function=0x7f08056cd8f9 "struct DefinitionData
> &clang::CXXRecordDecl::data()") at assert.c:103
> #4  0x00007f0803633e16 in clang::CXXRecordDecl::data (this=0x194ca40) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/include/clang/AST/DeclCXX.h:553
> #5  0x00007f08036d205b in clang::CXXRecordDecl::addedMember
> (this=0x194ca40, D=0x1522100) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/AST/DeclCXX.cpp:411
> #6  0x00007f08036c6423 in clang::DeclContext::addHiddenDecl
> (this=0x194ca78, D=0x1522100) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/AST/DeclBase.cpp:1108
> #7  0x00007f08036c648d in clang::DeclContext::addDecl (this=0x194ca78,
> D=0x1522100) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/AST/DeclBase.cpp:1119
> #8  0x00007f0803285cca in lldb_private::ClangASTContext::CreateRecordType
> (this=0x7f07d40017d8, decl_ctx=0x194ca78, access_type=lldb::eAccessPrivate,
> name=0x7f07edc5ffae "Erro
> rCollector", kind=3, language=lldb::eLanguageTypeUnknown,
> metadata=0x7fffbd00f3f0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp:1182
> #9  0x00007f08033bc0e3 in SymbolFileDWARF::ParseType (this=0x7f07d40059b0,
> sc=..., dwarf_cu=0x7f07d4068d40, die=0x12e5150, type_is_new_ptr=0x0) at
> /home/mikesart/data/src/llvm
>
> .hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:6157
> #10 0x00007f08033b3961 in SymbolFileDWARF::GetTypeForDIE
> (this=0x7f07d40059b0, dwarf_cu=0x7f07d4068d40, die=0x12e5150) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/sourc
> e/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4496
> #11 0x00007f08033b373e in SymbolFileDWARF::ResolveType
> (this=0x7f07d40059b0, dwarf_cu=0x7f07d4068d40, type_die=0x12e5150,
> assert_not_being_parsed=true) at /home/mikesart/data/
>
> src/llvm.hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2652
> #12 0x00007f08033aa418 in SymbolFileDWARF::ResolveTypeUID
> (this=0x7f07d40059b0, cu=0x7f07d4068d40, die=0x12e5150,
> assert_not_being_parsed=true) at /home/mikesart/data/src/llvm
>
> .hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2325
> #13 0x00007f08033b17fe in SymbolFileDWARF::ResolveTypeUID
> (this=0x7f07d40059b0, type_uid=456429) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Plugins/SymbolFile/D
> WARF/SymbolFileDWARF.cpp:2265
> #14 0x00007f08032e96fc in lldb_private::Type::GetEncodingType
> (this=0x1522fa0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Symbol/Type.cpp:316
> #15 0x00007f08032e8f56 in lldb_private::Type::ResolveClangType
> (this=0x1522fa0,
> clang_type_resolve_state=lldb_private::Type::eResolveStateForward) at
> /home/mikesart/data/src/l
> lvm.hg/llvm/tools/lldb/source/Symbol/Type.cpp:519
> #16 0x00007f08032e9d9e in lldb_private::Type::GetClangForwardType
> (this=0x1522fa0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Symbol/Type.cpp:681
> #17 0x00007f08033b97ec in SymbolFileDWARF::ParseChildParameters
> (this=0x7f07d40059b0, sc=..., containing_decl_ctx=0x194c968,
> dwarf_cu=0x7f07d4068d40, parent_die=0x132a770, ski
> p_artificial=true, is_static=@0x7fffbd010f35: false,
> type_list=0x7f07d4005938, function_param_types=...,
> function_param_decls=..., type_quals=@0x7fffbd010f20: 0, template_para
> m_infos=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4279
> #18 0x00007f08033bd3ca in SymbolFileDWARF::ParseType (this=0x7f07d40059b0,
> sc=..., dwarf_cu=0x7f07d4068d40, die=0x132a770, type_is_new_ptr=0x0) at
> /home/mikesart/data/src/llvm
>
> .hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:6507
> #19 0x00007f08033b3961 in SymbolFileDWARF::GetTypeForDIE
> (this=0x7f07d40059b0, dwarf_cu=0x7f07d4068d40, die=0x132a770) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/sourc
> e/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4496
> #20 0x00007f08033b373e in SymbolFileDWARF::ResolveType
> (this=0x7f07d40059b0, dwarf_cu=0x7f07d4068d40, type_die=0x132a770,
> assert_not_being_parsed=true) at /home/mikesart/data/
>
> src/llvm.hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2652
> #21 0x00007f08033aa418 in SymbolFileDWARF::ResolveTypeUID
> (this=0x7f07d40059b0, cu=0x7f07d4068d40, die=0x132a770,
> assert_not_being_parsed=true) at /home/mikesart/data/src/llvm
>
> .hg/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2325
> #22 0x00007f08033bf8de in SymbolFileDWARF::GetClangDeclContextForDIE
> (this=0x7f07d40059b0, sc=..., cu=0x7f07d4068d40, die=0x132a770) at
> /home/mikesart/data/src/llvm.hg/llvm/to
> ols/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4605
> #23 0x00007f08033b16f6 in SymbolFileDWARF::GetClangDeclContextForDIEOffset
> (this=0x7f07d40059b0, sc=..., die_offset=650576) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/
> source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4531
> #24 0x00007f08033bf7c0 in SymbolFileDWARF::GetClangDeclContextForDIE
> (this=0x7f07d40059b0, sc=..., cu=0x7f07d4068d40, die=0x13685c0) at
> /home/mikesart/data/src/llvm.hg/llvm/to
> ols/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4594
> #25 0x00007f08033b16f6 in SymbolFileDWARF::GetClangDeclContextForDIEOffset
> (this=0x7f07d40059b0, sc=..., die_offset=833179) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/
> source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4531
> #26 0x00007f08033bf80b in SymbolFileDWARF::GetClangDeclContextForDIE
> (this=0x7f07d40059b0, sc=..., cu=0x7f07d4068d40, die=0x1368610) at
> /home/mikesart/data/src/llvm.hg/llvm/to
> ols/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4598
> #27 0x00007f08033b16f6 in SymbolFileDWARF::GetClangDeclContextForDIEOffset
> (this=0x7f07d40059b0, sc=..., die_offset=833247) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/
> source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:4531
> #28 0x00007f08033b163a in SymbolFileDWARF::GetClangDeclContextForTypeUID
> (this=0x7f07d40059b0, sc=..., type_uid=833247) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/sour
> ce/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2250
> #29 0x00007f08032c24b8 in lldb_private::Function::GetClangDeclContext
> (this=0x1840070) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Symbol/Function.cpp:451
> #30 0x00007f08031cf0dc in
> lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls
> (this=0x1b3e190, context=..., module_sp=..., namespace_decl=...,
> current_id=2) at /hom
>
> e/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Expression/ClangExpressionDeclMap.cpp:1329
> #31 0x00007f08031cd6a6 in
> lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls
> (this=0x1b3e190, context=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/sourc
> e/Expression/ClangExpressionDeclMap.cpp:872
> #32 0x00007f0803203539 in
> lldb_private::ClangASTSource::FindExternalVisibleDeclsByName
> (this=0x1b3e190, decl_ctx=0x13b62f0, clang_decl_name=...) at
> /home/mikesart/data/src/llv
> m.hg/llvm/tools/lldb/source/Expression/ClangASTSource.cpp:162
> #33 0x00007f08031df7de in
> lldb_private::ClangASTSource::ClangASTSourceProxy::FindExternalVisibleDeclsByName(clang::DeclContext
> const*, clang::DeclarationName) () from /home/mi
> kesart/data/src/llvm.hg/build/lib/liblldb.so.3.4
> #34 0x00007f08036c6fba in clang::DeclContext::lookup (this=0x13b62f0,
> Name=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/AST/DeclBase.cpp:1242
> #35 0x00007f08036c99f1 in clang::DeclContext::lookup (this=0x13b62f0,
> Name=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/include/clang/AST/DeclBase.h:1439
> #36 0x00007f080403986a in LookupDirect (S=..., R=..., DC=0x13b62f0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/SemaLookup.cpp:673
> #37 0x00007f0804038518 in CppNamespaceLookup (S=..., R=..., Context=...,
> NS=0x13b62f0, UDirs=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/SemaLookup.cpp:7
> 65
> #38 0x00007f0804037ba5 in clang::Sema::CppLookupName (this=0x13b98e0,
> R=..., S=0x13be3b0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/SemaLookup.cpp:1088
> #39 0x00007f0804039499 in clang::Sema::LookupName (this=0x13b98e0, R=...,
> S=0x13ca620, AllowBuiltinCreation=true) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/
> SemaLookup.cpp:1261
> #40 0x00007f080403a4ee in clang::Sema::LookupParsedName (this=0x13b98e0,
> R=..., S=0x13ca620, SS=0x7fffbd013ba8, AllowBuiltinCreation=true,
> EnteringContext=false) at /home/mike
> sart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/SemaLookup.cpp:1684
> #41 0x00007f0803dff79f in clang::Sema::ClassifyName (this=0x13b98e0,
> S=0x13ca620, SS=..., Name=@0x7fffbd013b90: 0x13d5fa8, NameLoc=...,
> NextToken=..., IsAddressOfOperand=false
> , CCC=0x7fffbd013da0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Sema/SemaDecl.cpp:610
> #42 0x00007f0803cb4cd8 in clang::Parser::TryAnnotateName (this=0x13bbfe0,
> IsAddressOfOperand=false, CCC=0x7fffbd013da0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib
> /Parse/Parser.cpp:1384
> #43 0x00007f0803d25d3f in
> clang::Parser::ParseStatementOrDeclarationAfterAttributes (this=0x13bbfe0,
> Stmts=..., OnlyStatement=false, TrailingElseLoc=0x0, Attrs=...) at /home/m
> ikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/ParseStmt.cpp:166
> #44 0x00007f0803d25695 in clang::Parser::ParseStatementOrDeclaration
> (this=0x13bbfe0, Stmts=..., OnlyStatement=false, TrailingElseLoc=0x0) at
> /home/mikesart/data/src/llvm.hg/l
> lvm/tools/clang/lib/Parse/ParseStmt.cpp:102
> #45 0x00007f0803d2c4a0 in clang::Parser::ParseCompoundStatementBody
> (this=0x13bbfe0, isStmtExpr=false) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/ParseStmt.
> cpp:843
> #46 0x00007f0803d2f43f in clang::Parser::ParseFunctionStatementBody
> (this=0x13bbfe0, Decl=0x13c55a0, BodyScope=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Par
> se/ParseStmt.cpp:2393
> #47 0x00007f0803cb3f65 in clang::Parser::ParseFunctionDefinition
> (this=0x13bbfe0, D=..., TemplateInfo=..., LateParsedAttrs=0x7fffbd014aa8)
> at /home/mikesart/data/src/llvm.hg/l
> lvm/tools/clang/lib/Parse/Parser.cpp:1118
> #48 0x00007f0803ccb5d3 in clang::Parser::ParseDeclGroup (this=0x13bbfe0,
> DS=..., Context=0, AllowFunctionDefinitions=true, DeclEnd=0x0, FRI=0x0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/ParseDecl.cpp:1622
> #49 0x00007f0803cb3078 in clang::Parser::ParseDeclOrFunctionDefInternal
> (this=0x13bbfe0, attrs=..., DS=..., AS=clang::AS_none) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/cl
> ang/lib/Parse/Parser.cpp:896
> #50 0x00007f0803cb2843 in
> clang::Parser::ParseDeclarationOrFunctionDefinition (this=0x13bbfe0,
> attrs=..., DS=0x0, AS=clang::AS_none) at
> /home/mikesart/data/src/llvm.hg/llvm/to
> ols/clang/lib/Parse/Parser.cpp:912
> #51 0x00007f0803cb2060 in clang::Parser::ParseExternalDeclaration
> (this=0x13bbfe0, attrs=..., DS=0x0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/Parser.cpp:
> 777
> #52 0x00007f0803cb125b in clang::Parser::ParseTopLevelDecl
> (this=0x13bbfe0, Result=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/Parser.cpp:582
> #53 0x00007f0803cad102 in clang::ParseAST (S=..., PrintStats=false,
> SkipFunctionBodies=false) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/ParseAST.cpp:144
> #54 0x00007f0803caceaa in clang::ParseAST (PP=..., Consumer=0x1d30170,
> Ctx=..., PrintStats=false, TUKind=clang::TU_Complete,
> CompletionConsumer=0x0, SkipFunctionBodies=false)
> at
> /home/mikesart/data/src/llvm.hg/llvm/tools/clang/lib/Parse/ParseAST.cpp:96
> #55 0x00007f08031d904a in lldb_private::ClangExpressionParser::Parse
> (this=0x7fffbd016120, stream=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Expression/Cla
> ngExpressionParser.cpp:400
> #56 0x00007f0803196171 in lldb_private::ClangUserExpression::Parse
> (this=0x1cc8840, error_stream=..., exe_ctx=...,
> execution_policy=lldb_private::eExecutionPolicyOnlyWhenNeede
> d, keep_result_in_memory=true) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp:504
> #57 0x00007f0803197d4f in
> lldb_private::ClangUserExpression::EvaluateWithError (exe_ctx=...,
> execution_policy=lldb_private::eExecutionPolicyOnlyWhenNeeded,
> language=lldb::eLan
> guageTypeUnknown,
> desired_type=lldb_private::ClangExpression::eResultTypeAny,
> unwind_on_error=true, ignore_breakpoints=true, expr_cstr=0xfdddd8 "set",
> expr_prefix=0x0, result_
> valobj_sp=..., error=..., run_others=true, timeout_usec=0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp:1006
> #58 0x00007f0803197b3c in lldb_private::ClangUserExpression::Evaluate
> (exe_ctx=...,
> execution_policy=lldb_private::eExecutionPolicyOnlyWhenNeeded,
> language=lldb::eLanguageType
> Unknown, desired_type=lldb_private::ClangExpression::eResultTypeAny,
> unwind_on_error=true, ignore_breakpoints=true, expr_cstr=0xfdddd8 "set",
> expr_prefix=0x0, result_valobj_sp
> =..., run_others=true, timeout_usec=0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp:947
> #59 0x00007f0803360671 in lldb_private::Target::EvaluateExpression
> (this=0x12812f0, expr_cstr=0xfdddd8 "set", frame=0x7f07d772d3d0,
> result_valobj_sp=..., options=...) at /home
> /mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Target/Target.cpp:1889
> #60 0x00007f0803509388 in
> lldb_private::CommandObjectExpression::EvaluateExpression (this=0xe875a0,
> expr=0xfdddd8 "set", output_stream=0x127cfe0, error_stream=0x127d038, resul
> t=0x127cfe0) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp:345
> #61 0x00007f0803509d0e in lldb_private::CommandObjectExpression::DoExecute
> (this=0xe875a0, command=0xfdddd8 "set", result=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/ll
> db/source/Commands/CommandObjectExpression.cpp:528
> #62 0x00007f080323b545 in lldb_private::CommandObjectRaw::Execute
> (this=0xe875a0, args_string=0xfdddd8 "set", result=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/so
> urce/Interpreter/CommandObject.cpp:1064
> #63 0x00007f080322cca2 in lldb_private::CommandInterpreter::HandleCommand
> (this=0xe7f5f0, command_line=0x7f07e8000ed8 "expr set",
> lazy_add_to_history=lldb_private::eLazyBoolYe
> s, result=..., override_context=0x0, repeat_on_empty_command=true,
> no_context_switching=false) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/source/Interpreter/CommandInt
> erpreter.cpp:1825
> #64 0x00007f0802fe7404 in lldb::SBCommandInterpreter::HandleCommand
> (this=0x7fffbd017060, command_line=0x7f07e8000ed8 "expr set", result=...,
> add_to_history=true) at /home/mik
>
> esart/data/src/llvm.hg/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp:122
> #65 0x000000000040bf50 in Driver::HandleIOEvent (this=0x7fffbd019d20,
> event=...) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/tools/driver/Driver.cpp:1083
> #66 0x000000000040d8aa in Driver::MainLoop (this=0x7fffbd019d20) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/tools/driver/Driver.cpp:1556
> #67 0x000000000040e0db in main (argc=1, argv=0x7fffbd019f28,
> envp=0x7fffbd019f38) at
> /home/mikesart/data/src/llvm.hg/llvm/tools/lldb/tools/driver/Driver.cpp:1727
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20130710/a7126bd7/attachment.html>


More information about the lldb-dev mailing list