jimingham wrote:

Note, this complexity is mostly because we can't trust the `prologue_end` bit 
being reliably set.  You shouldn't have to care about first line or second 
line, you should just scan the line table entries in the address range of the 
function till you find the one marked with `prologue_end`.  But some compilers 
don't set this reliably (I'm not sure any current ones do this wrong, but lots 
of older ones do).  

The old convention was that the first line table entry was the "definition of 
the function" line, and its address would be the actual beginning of the 
function.  Then the second entry was the end of the prologue (and usually 
mapped to the `{` that opened the function.  That's why we care about a "first 
line"...

Someday it might be nice to stop supporting faulty compilers and convert this 
algorithm to rely on finding the prologue_end entry, as that would be simpler.  
But short of that, this workaround is fine.

https://github.com/llvm/llvm-project/pull/204480
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to