[lldb-dev] Prologue instructions having line information

2017-09-14 Thread Carlos Alberto Enciso via lldb-dev
Hi, I have been working on a compiler issue, where instructions associated to the function prolog are assigned line information, causing the debugger to show incorrectly the beginning of the function body. For a full description, please see: https://reviews.llvm.org/D37625 https://reviews.llvm.o

Re: [lldb-dev] Prologue instructions having line information

2017-09-14 Thread Tamas Berghammer via lldb-dev
Hi Carlos, Thank your for looking into the LLDB failure. I looked into it briefly and the issue is that we have have 2 function f and g where g is inlined into f as the first call and this causes the first non-prologue line entry of f to be inside the address range of g what means that when we ste

Re: [lldb-dev] lldb_private::RegisterContext vs lldb_private::RegisterInfoInterface

2017-09-14 Thread Greg Clayton via lldb-dev
Seems like this class was added for testing. RegisterInfoInterface is a class that creates a common API for getting lldb_private::RegisterInfo structures. A RegisterContext_ class uses one of these to be able to create a buffer large enough to store all registers defined in the RegisterInfoInt

Re: [lldb-dev] Prologue instructions having line information

2017-09-14 Thread Carlos Alberto Enciso via lldb-dev
Hi Tamas, Thanks very much for your reply and the useful information. In order to properly test my changes (I have another Debug Information ready for submission) I would like be able to build LLDB on my local machine. Once I reach that point, I will follow the process you described (compile call

Re: [lldb-dev] Prologue instructions having line information

2017-09-14 Thread Jim Ingham via lldb-dev
This is only tangential, but it is a known bug that when we stop on a line that starts an inlined block we don't pretend we're in the outer function first, so the user can "step-in" to the inlined function. This is particularly notable when you have several nested levels of inlining starting at

Re: [lldb-dev] Prologue instructions having line information

2017-09-14 Thread Chris Quenelle via lldb-dev
Have you guys considered going all the way and recording multiple layers of line information for the same range of instructions, and allowing the user to jump up and down through the not-really-there function calls? That seems like a very usefuil features for looking at optimized code. You’d nee

Re: [lldb-dev] Prologue instructions having line information

2017-09-14 Thread Jim Ingham via lldb-dev
This is supported (admittedly a little awkwardly) in DWARF with the DW_TAG_inline_subroutine DIE's in the debug_info section of the DWARF. They can expresses the nesting fully. I think we have all the data we need to do this right (*). The missing part is making the right decision of which