[lldb-dev] Making a new symbol provider

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Mon Feb 29 17:09:13 PST 2016


Suppose you've got two line sequences.

First sequence:
4198512
4198544
4198547
4198562

Second sequence:
4198528
4198531
4198537
4198552

These two line sequences overlap, and will not be inserted correctly into a
LineTable.  This sounds like a bug to me, because as far as I can tell
there is nothing preventing LineSequences being organized this way,
but LineTable::InsertSequence assumes that this cannot happen.

On Fri, Feb 12, 2016 at 11:01 AM Zachary Turner <zturner at google.com> wrote:

> On Thu, Feb 11, 2016 at 5:35 PM Greg Clayton <gclayton at apple.com> wrote:
>
>>
>> > 5. ParseCompileUnitLineTable.  On the LineTable class you can add "line
>> sequences" or individual entries.  What's the difference here?  Is there
>> any disadvantage to adding every single line entry in the line table using
>> the InsertLineEntry instead of building a line sequence and inserting the
>> sequence?
>>
>> The rule follows DWARF line tables: line sequences must be an array of
>> line entries whose addresses are always increasing. You can add every line
>> in sequence as long as the line entries are in increasing address order. We
>> are going to sort the line entries into an array that is sorted for quick
>> lookups.
>>
> Just to make sure I understand, semantically here, there is nothing
> special about a line sequence, it's just an optimization to let LineTable
> know you're giving it sorted values?  So any lines you add via a
> LineSequence, could also be added individually with insertLine, but it
> would be slower?  And aside from that everything else would still work as
> expected?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160301/9c1fc656/attachment.html>


More information about the lldb-dev mailing list