[lldb-dev] [Bug 19676] New: Assertion failure when debugging application built w/o -fstandalone-debug

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed May 7 10:08:39 PDT 2014


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

            Bug ID: 19676
           Summary: Assertion failure when debugging application built w/o
                    -fstandalone-debug
           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

See the thread at
http://lists.cs.uiuc.edu/pipermail/lldb-dev/2014-April/003800.html for
background.  Clang defaults to -fno-standalone-debug on Linux and FreeBSD. 
This causes debug info to contain forward declarations where possible, instead
of definitions, and omits debug info for dynamic classes in modules other than
where the vtable is found.

Ideally we would search the rest of the debug info for the required definition.
 In any case we should return an error to the user if the debug info is missing
instead of tripping the assert.

Example assertion, from debugging Clang's CGDebugInfo:


 * thread #1: tid = 104525, 0x000000081191ff6e
libclangCodeGen.so`clang::CodeGen::CGDebugInfo::CreateType(this=0x0000000815c0a000,
BT=0x0000000815c3d400) + 30 at CGDebugInfo.cpp:391, stop reason =
breakpoint 1.1
    frame #0: 0x000000081191ff6e
libclangCodeGen.so`clang::CodeGen::CGDebugInfo::CreateType(this=0x0000000815c0a000,
BT=0x0000000815c3d400) + 30 at CGDebugInfo.cpp:391
   388  /// CreateType - Get the Basic type from the cache or create a new
   389  /// one if necessary.
   390  llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) {
-> 391    unsigned Encoding = 0;
   392    StringRef BTName;
   393    switch (BT->getKind()) {
   394  #define BUILTIN_TYPE(Id, SingletonId)
(lldb) p BT
Assertion failed: (D && "Cannot get layout of forward declarations!"),
function getASTRecordLayout, file
../tools/clang/lib/AST/RecordLayoutBuilder.cpp, line 2783.

-- 
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/20140507/0595a827/attachment.html>


More information about the lldb-dev mailing list