[Lldb-commits] [PATCH] [Review request] Handle unsorted DWARF line table

Kaylor, Andrew andrew.kaylor at intel.com
Wed Dec 19 13:52:31 PST 2012


The TestDataFormatterGlobals test case was failing on Linux because the process being debugged contained a line table for one compile unit which was not sorted by address in the internal representation (though its use assumed that it would be).  I tracked this down to a place where the line table was being built in SymbolFileDWARF.cpp.

A comment in the code claimed that the DWARF specification guarantees that addresses for the line table would be in increasing order.  However, I don't believe that this is correct.  The DWARF specification says that addresses for a sequence (i.e. series of contiguous instructions) will be in increasing order.  However, it also states that a compile unit may contain multiple sequences which may not be contiguous.

As such, the attached patch changes the call at this location from AppendLineEntry (which assumes a pre-sorted list) to InsertLineEntry (which does not).  I didn't find any other callers of AppendLineEntry, so I am also removing that.

Can someone review this for me, particularly verifying that there is no reason to keep AppendLineEntry around?

Thanks,
Andy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20121219/a1b21800/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: line-table.patch
Type: application/octet-stream
Size: 3500 bytes
Desc: line-table.patch
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20121219/a1b21800/attachment.obj>


More information about the lldb-commits mailing list