[llvm] r174479 - Attempt to recover gdb bot after r174445.

David Blaikie dblaikie at gmail.com
Fri Feb 8 11:41:54 PST 2013


On Tue, Feb 5, 2013 at 4:59 PM, Manman Ren <mren at apple.com> wrote:
> Author: mren
> Date: Tue Feb  5 18:59:41 2013
> New Revision: 174479
>
> URL: http://llvm.org/viewvc/llvm-project?rev=174479&view=rev
> Log:
> Attempt to recover gdb bot after r174445.
>
> Failure: undefined symbol 'Lline_table_start0'.
> Root-cause: we use a symbol subtraction to calculate at_stmt_list, but
> the line table entries are not dumped in the assembly.
> Fix: use zero instead of a symbol subtraction for Compile Unit 0.

This seems to not have completely fixed problems of this kind. I
discovered more breakage in DragonEgg. Any attempt to build with debug
info in DragonEgg is currently broken due to the original change, even
after this fix.

You can reproduce this without dragonegg:

$ echo "int main() { }" | clang -x c++ -g -S - -o hello.s && clang hello.s
/tmp/hello-5jpGIX.o:(.debug_info+0x1e): undefined reference to
`.Lline_table_start0'

Essentially: the assembly code emitted by clang -g is currently
unusable due to this undefined reference

Eric pointed out that MCAsmStreamer.cpp:1420 - where we don't emit the
line table if we expect the .loc directives to be sufficient for the
assembler to create the line table itself. Since we don't emit the
line table we don't emit the extra special line_table_start symbol
that's being used in the debug info. (this is paraphrased from Eric's
comments based on my rather shallow understanding of the issues)

- David

>
> Modified:
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>     llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
>     llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
>     llvm/trunk/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
>     llvm/trunk/test/CodeGen/X86/dbg-value-location.ll
>     llvm/trunk/test/DebugInfo/X86/stringpool.ll
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Tue Feb  5 18:59:41 2013
> @@ -674,6 +674,8 @@ CompileUnit *DwarfDebug::constructCompil
>    if (Asm->MAI->doesDwarfUseRelocationsAcrossSections())
>      NewCU->addLabel(Die, dwarf::DW_AT_stmt_list, dwarf::DW_FORM_data4,
>                      LineTableStartSym);
> +  else if (NewCU->getUniqueID() == 0)
> +    NewCU->addUInt(Die, dwarf::DW_AT_stmt_list, dwarf::DW_FORM_data4, 0);
>    else
>      NewCU->addDelta(Die, dwarf::DW_AT_stmt_list, dwarf::DW_FORM_data4,
>                      LineTableStartSym, Asm->GetTempSymbol("section_line"));
>
> Modified: llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll Tue Feb  5 18:59:41 2013
> @@ -17,7 +17,7 @@ target triple = "thumbv7-apple-darwin10"
>  ; DW_OP_constu
>  ; offset
>
> -;CHECK: .long Lset7
> +;CHECK: .long Lset6
>  ;CHECK-NEXT:        @ DW_AT_type
>  ;CHECK-NEXT:        @ DW_AT_decl_file
>  ;CHECK-NEXT:        @ DW_AT_decl_line
>
> Modified: llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll Tue Feb  5 18:59:41 2013
> @@ -8,7 +8,7 @@
>  ; DW_OP_constu
>  ; offset
>
> -;CHECK: .long Lset34
> +;CHECK: .long Lset33
>  ;CHECK-NEXT:        @ DW_AT_type
>  ;CHECK-NEXT:        @ DW_AT_decl_file
>  ;CHECK-NEXT:        @ DW_AT_decl_line
>
> Modified: llvm/trunk/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll Tue Feb  5 18:59:41 2013
> @@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8
>  target triple = "x86_64-apple-darwin10.0.0"
>
>  ; Check debug info for variable z_s
> -;CHECK: .long Lset14
> +;CHECK: .long Lset13
>  ;CHECK-NEXT:  ## DW_AT_decl_file
>  ;CHECK-NEXT:  ## DW_AT_decl_line
>  ;CHECK-NEXT:  ## DW_AT_type
>
> Modified: llvm/trunk/test/CodeGen/X86/dbg-value-location.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/dbg-value-location.ll?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/dbg-value-location.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/dbg-value-location.ll Tue Feb  5 18:59:41 2013
> @@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8
>  target triple = "x86_64-apple-darwin10.0.0"
>  ;Radar 8950491
>
> -;CHECK: .long Lset6
> +;CHECK: .long Lset5
>  ;CHECK-NEXT:        ## DW_AT_decl_file
>  ;CHECK-NEXT:        ## DW_AT_decl_line
>  ;CHECK-NEXT:        ## DW_AT_type
>
> Modified: llvm/trunk/test/DebugInfo/X86/stringpool.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/stringpool.ll?rev=174479&r1=174478&r2=174479&view=diff
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/X86/stringpool.ll (original)
> +++ llvm/trunk/test/DebugInfo/X86/stringpool.ll Tue Feb  5 18:59:41 2013
> @@ -23,8 +23,8 @@
>  ; LINUX-NEXT: .quad   yyyy
>
>  ; Verify that we refer to 'yyyy' without a relocation.
> -; DARWIN: Lset6 = Linfo_string3-Linfo_string          ## DW_AT_name
> -; DARWIN-NEXT:        .long   Lset6
> +; DARWIN: Lset5 = Linfo_string3-Linfo_string          ## DW_AT_name
> +; DARWIN-NEXT:        .long   Lset5
>  ; DARWIN-NEXT:        .long   39                      ## DW_AT_type
>  ; DARWIN-NEXT:        .byte   1                       ## DW_AT_external
>  ; DARWIN-NEXT:        .byte   1                       ## DW_AT_decl_file
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list