[lldb-dev] [Bug 17225] New: test causes assertion failure on FreeBSD in CGRecordLayoutBuilder::AppendTailPadding

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Sep 13 06:50:49 PDT 2013


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

            Bug ID: 17225
           Summary: test causes assertion failure on FreeBSD in
                    CGRecordLayoutBuilder::AppendTailPadding
           Product: lldb
           Version: unspecified
          Hardware: PC
                OS: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: All Bugs
          Assignee: lldb-dev at cs.uiuc.edu
          Reporter: emaste at freebsd.org
    Classification: Unclassified

TestDynamicValue.py DynamicValueTestCase.test_get_dynamic_vals_with_dwarf

Reproducing manually,

(lldb) run
Process 15902 launched:
'/tank/emaste/src/llvm/tools/lldb/test/lang/cpp/dynamic-value/a.out' (x86_64)
Process 15902 stopped
* thread #1: tid = 15902, 0x0000000000400a91 a.out`main(argc=1,
argv=0x00007fffffffd4f8) + 353 at pass-to-base.cpp:63, stop reason = breakpoint
1.1
    frame #0: 0x0000000000400a91 a.out`main(argc=1, argv=0x00007fffffffd4f8) +
353 at pass-to-base.cpp:63
   60     B *second_fake_A_ptr = new B (150, 250);
   61     B otherB (300, 400, second_fake_A_ptr);
   62  
-> 63     myB.doSomething(otherB); // Break here and get real addresses of myB
and otherB.
   64  
   65     A reallyA (500);
   66     myB.doSomething (reallyA);  // Break here and get real address of
reallyA.
(lldb) p myB
Assertion failed: (NextFieldOffset <= RecordSize && "Size mismatch!"), function
AppendTailPadding, file ../tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp,
line 823.
zsh: abort (core dumped)  ../../build-nodebug/bin/lldb
test/lang/cpp/dynamic-value/a.out

assertion backtrace:

(lldb) bt
* thread #1: tid = 0, 0x0000000806501cac libc.so.7`_thr_kill + 12 at
thr_kill.S:3, name = 'main-thread', stop reason = signal SIGABRT
    frame #0: 0x0000000806501cac libc.so.7`_thr_kill + 12 at thr_kill.S:3
    frame #1: 0x00000008065a239c libc.so.7`abort + 76 at abort.c:65
    frame #2: 0x0000000806585991 libc.so.7`__assert(func=<unavailable>,
file=<unavailable>, line=<unavailable>, failedexpr=<unavailable>) + 81 at
assert.c:54
    frame #3: 0x0000000801de70cf
liblldb.so.3.4`_GLOBAL__N_1::CGRecordLayoutBuilder::AppendTailPadding(clang::CharUnits)
+ 127
    frame #4: 0x0000000801de5808
liblldb.so.3.4`_GLOBAL__N_1::CGRecordLayoutBuilder::LayoutFields(clang::RecordDecl
const*) + 1048
    frame #5: 0x0000000801de4585
liblldb.so.3.4`_GLOBAL__N_1::CGRecordLayoutBuilder::Layout(clang::RecordDecl
const*) + 309
    frame #6: 0x0000000801de3bdb
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ComputeRecordLayout(clang::RecordDecl
const*, llvm::StructType*) + 75
    frame #7: 0x0000000801e85d60
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ConvertRecordDeclType(clang::RecordDecl
const*) + 640
    frame #8: 0x0000000801e845ff
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) + 143
    frame #9: 0x0000000801e84507
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType)
+ 55
    frame #10: 0x0000000801e84a4e
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) +
1246
    frame #11: 0x0000000801e84507
liblldb.so.3.4`clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType)
+ 55
    frame #12: 0x0000000801efff2f
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(clang::VarDecl
const&, char const*, llvm::GlobalValue::LinkageTypes) + 511
    frame #13: 0x0000000801effa55
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(clang::VarDecl
const&, llvm::GlobalValue::LinkageTypes) + 213
    frame #14: 0x0000000801eff8c5
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl
const&) + 101
    frame #15: 0x0000000801eff70e
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) +
382
    frame #16: 0x0000000801df8ae5
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt
const&) + 117
    frame #17: 0x0000000801defed5
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt
const*) + 325
    frame #18: 0x0000000801def7a7
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) +
87
    frame #19: 0x0000000801df93bb
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt
const&, bool, clang::CodeGen::AggValueSlot) + 139
    frame #20: 0x0000000801e173fb
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList&)
+ 203
    frame #21: 0x0000000801e17951
liblldb.so.3.4`clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 1313
    frame #22: 0x0000000801e2cb52
liblldb.so.3.4`clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl)
+ 802
    frame #23: 0x0000000801e28eaf
liblldb.so.3.4`clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl)
+ 511
    frame #24: 0x0000000801e2bc7c
liblldb.so.3.4`clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) +
908
    frame #25: 0x0000000801e2e226
liblldb.so.3.4`clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) +
278
    frame #26: 0x0000000801d9fb70
liblldb.so.3.4`_GLOBAL__N_1::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef)
+ 128
    frame #27: 0x00000008013fe093
liblldb.so.3.4`lldb_private::ASTResultSynthesizer::HandleTopLevelDecl(clang::DeclGroupRef)
+ 163
    frame #28: 0x00000008021cdcb8 liblldb.so.3.4`clang::ParseAST(clang::Sema&,
bool, bool) + 648
    frame #29: 0x00000008021cda0a
liblldb.so.3.4`clang::ParseAST(clang::Preprocessor&, clang::ASTConsumer*,
clang::ASTContext&, bool, clang::TranslationUnitKind,
clang::CodeCompleteConsumer*, bool) + 170
    frame #30: 0x00000008014172d4
liblldb.so.3.4`lldb_private::ClangExpressionParser::Parse(lldb_private::Stream&)
+ 884
    frame #31: 0x00000008013b9fbb
liblldb.so.3.4`lldb_private::ClangUserExpression::Parse(lldb_private::Stream&,
lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool) + 3163
    frame #32: 0x00000008013bc856
liblldb.so.3.4`lldb_private::ClangUserExpression::EvaluateWithError(lldb_private::ExecutionContext&,
lldb_private::ExecutionPolicy, lldb::LanguageType,
lldb_private::ClangExpression::ResultType, bool, bool, char const*, char
const*, lldb_private::SharingPtr<lldb_private::ValueObject>&,
lldb_private::Error&, bool, unsigned int) + 582
    frame #33: 0x00000008013bc5d2
liblldb.so.3.4`lldb_private::ClangUserExpression::Evaluate(lldb_private::ExecutionContext&,
lldb_private::ExecutionPolicy, lldb::LanguageType,
lldb_private::ClangExpression::ResultType, bool, bool, char const*, char
const*, lldb_private::SharingPtr<lldb_private::ValueObject>&, bool, unsigned
int) + 242
    frame #34: 0x000000080168d7b9
liblldb.so.3.4`lldb_private::Target::EvaluateExpression(char const*,
lldb_private::StackFrame*,
lldb_private::SharingPtr<lldb_private::ValueObject>&,
lldb_private::EvaluateExpressionOptions const&) + 1353
    frame #35: 0x000000080190752f
liblldb.so.3.4`lldb_private::CommandObjectExpression::EvaluateExpression(char
const*, lldb_private::Stream*, lldb_private::Stream,
lldb_private::CommandReturnObject*) + 463
    frame #36: 0x0000000801907faa
liblldb.so.3.4`lldb_private::CommandObjectExpression::DoExecute(char const*,
lldb_private::CommandReturnObject&) + 1738
    frame #37: 0x00000008014c9245
liblldb.so.3.4`lldb_private::CommandObjectRaw::Execute(char const*,
lldb_private::CommandReturnObject&) + 805
    frame #38: 0x00000008014ab8ea
liblldb.so.3.4`lldb_private::CommandInterpreter::HandleCommand(char const*,
lldb_private::LazyBool, lldb_private::CommandReturnObject&,
lldb_private::ExecutionContext*, bool, bool) + 21546
    frame #39: 0x0000000801159684
liblldb.so.3.4`lldb::SBCommandInterpreter::HandleCommand(char const*,
lldb::SBCommandReturnObject&, bool) + 292
    frame #40: 0x000000000040d3d0 lldb`Driver::HandleIOEvent(lldb::SBEvent
const&) + 160
    frame #41: 0x00000000004101d9 lldb`Driver::MainLoop(void) + 9961
    frame #42: 0x0000000000410abb lldb`main + 411
    frame #43: 0x00000000004077c1 lldb`_start(ap=<unavailable>,
cleanup=<unavailable>) + 145 at crt1.c:97

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20130913/4c7ebf55/attachment.html>


More information about the lldb-dev mailing list