[llvm] r373278 - DebugInfo: Add parsing support for debug_loc base address specifiers

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 1 08:08:23 PDT 2019


Ah, thanks! Sorry for the noise!

On Tue, Oct 1, 2019 at 2:27 AM Diana Picus <diana.picus at linaro.org> wrote:

> Hi David,
>
> I moved this test to the X86 directory since it's using an x86 triple
> and therefore breaking non-x86 buildbots. Just FYI :)
>
> Cheers,
> Diana
>
> On Tue, 1 Oct 2019 at 02:27, David Blaikie via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> >
> > Author: dblaikie
> > Date: Mon Sep 30 17:29:13 2019
> > New Revision: 373278
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=373278&view=rev
> > Log:
> > DebugInfo: Add parsing support for debug_loc base address specifiers
> >
> > Added:
> >     llvm/trunk/test/tools/llvm-dwarfdump/debug_loc_base_address.s
> > Modified:
> >     llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
> >     llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h?rev=373278&r1=373277&r2=373278&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h Mon Sep 30
> 17:29:13 2019
> > @@ -68,7 +68,7 @@ public:
> >    /// Return the location list at the given offset or nullptr.
> >    LocationList const *getLocationListAtOffset(uint64_t Offset) const;
> >
> > -  static Expected<LocationList>
> > +  Expected<LocationList>
> >    parseOneLocationList(const DWARFDataExtractor &Data, uint64_t
> *Offset);
> >  };
> >
> >
> > Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp?rev=373278&r1=373277&r2=373278&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp (original)
> > +++ llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp Mon Sep 30 17:29:13
> 2019
> > @@ -101,6 +101,7 @@ DWARFDebugLoc::parseOneLocationList(cons
> >
> >      if (Error Err = C.takeError())
> >        return std::move(Err);
> > +
> >      // The end of any given location list is marked by an end of list
> entry,
> >      // which consists of a 0 for the beginning address offset and a 0
> for the
> >      // ending address offset.
> > @@ -109,9 +110,12 @@ DWARFDebugLoc::parseOneLocationList(cons
> >        return LL;
> >      }
> >
> > -    unsigned Bytes = Data.getU16(C);
> > -    // A single location description describing the location of the
> object...
> > -    Data.getU8(C, E.Loc, Bytes);
> > +    if (E.Begin != (AddressSize == 4 ? -1U : -1ULL)) {
> > +      unsigned Bytes = Data.getU16(C);
> > +      // A single location description describing the location of the
> object...
> > +      Data.getU8(C, E.Loc, Bytes);
> > +    }
> > +
> >      LL.Entries.push_back(std::move(E));
> >    }
> >  }
> >
> > Added: llvm/trunk/test/tools/llvm-dwarfdump/debug_loc_base_address.s
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-dwarfdump/debug_loc_base_address.s?rev=373278&view=auto
> >
> ==============================================================================
> > --- llvm/trunk/test/tools/llvm-dwarfdump/debug_loc_base_address.s (added)
> > +++ llvm/trunk/test/tools/llvm-dwarfdump/debug_loc_base_address.s Mon
> Sep 30 17:29:13 2019
> > @@ -0,0 +1,34 @@
> > +# RUN: llvm-mc %s -filetype obj -triple x86_64-pc-linux -o %t.o
> > +# RUN: llvm-dwarfdump --debug-loc %t.o | FileCheck %s
> > +
> > +# CHECK:         .debug_loc contents:
> > +# CHECK-NEXT:    0x00000000:
> > +# CHECK-NEXT:    [0xffffffffffffffff, 0x000000000000002a):
> > +# CHECK-NEXT:    [0x0000000000000003, 0x0000000000000007): DW_OP_consts
> +3, DW_OP_stack_value
> > +
> > +       .section        .debug_loc,"", at progbits
> > +       .quad   0xffffffffffffffff
> > +       .quad   42
> > +       .quad   3
> > +       .quad   7
> > +       .short  3                       # Loc expr size
> > +       .byte   17                      # DW_OP_consts
> > +       .byte   3                       # 3
> > +       .byte   159                     # DW_OP_stack_value
> > +       .quad   0
> > +       .quad   0
> > +       .section        .debug_abbrev,"", at progbits
> > +       .byte   1                       # Abbreviation Code
> > +       .byte   17                      # DW_TAG_compile_unit
> > +       .byte   0                       # DW_CHILDREN_no
> > +       .byte   0                       # EOM(1)
> > +       .byte   0                       # EOM(2)
> > +       .byte   0                       # EOM(3)
> > +       .section        .debug_info,"", at progbits
> > +       .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
> > +.Ldebug_info_start0:
> > +       .short  4                       # DWARF version number
> > +       .long   .debug_abbrev           # Offset Into Abbrev. Section
> > +       .byte   8                       # Address Size (in bytes)
> > +       .byte   1                       # Abbrev [1] DW_TAG_compile_unit
> > +.Ldebug_info_end0:
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191001/59c18773/attachment.html>


More information about the llvm-commits mailing list