[llvm-commits] PATCH: DebugInfo lib: fix instruction address lookup in line table

Benjamin Kramer benny.kra at gmail.com
Mon Aug 6 03:50:20 PDT 2012


On 06.08.2012, at 10:39, Alexey Samsonov <samsonov at google.com> wrote:

> Benjamin,
> 
> Could you take a look at this? (or redirect me to someone else for review).

Sorry, for the delay, been crazy busy over the last weeks.

This looks good to me. I'm a bit worried because the lookup code was taken pretty much 1:1 from lldb (see source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp). Does it have the same bugs?

- Ben

> 
> On Wed, Jul 25, 2012 at 9:15 PM, Alexey Samsonov <samsonov at google.com> wrote:
> Could you please take a look?
> 
> (re-attaching the patch just in case)
> 
> On Fri, Jul 20, 2012 at 4:35 PM, Alexey Samsonov <samsonov at google.com> wrote:
> Hi!
> 
> This patch fixes the representation of debug line table in DebugInfo LLVM library. Instead of just collection of rows, debug line table for compilation unit is now
> treated as the number of row ranges, describing sequences [1]. The sequences are not always listed in the order of increasing address, so
> the previously used std::lower_bound() sometimes produced wrong results. Now the instruction address lookup consists of two stages: finding the
> correct sequence, and searching for address in range of rows for this sequence.
> 
> [1] dwarfstd: "Sequence - A series of contiguous target machine instructions. One compilation unit may emit multiple sequences
> (that is, not all instructions within a compilation unit are assumed to be contiguous)"
> 
> Code review: http://codereview.appspot.com/6423064/
> 
> -- 
> Alexey Samsonov, MSK
> 
> 
> 
> 
> -- 
> Alexey Samsonov, MSK
> 





More information about the llvm-commits mailing list