On Fri, Dec 07, 2018 at 12:36:39PM +0000, David Stenberg via Dwarf-Discuss 
wrote:

For calls, we need to distinguish the locations that are valid in the caller
on the call instruction before the call instruction has been executed, then
locations that are valid while inside of the call and finally locations that
are valid after the call has returned.
The 3 can differ, before the call instruction has been executed the
locations can include registers clobbered by the call, during the call they
can't, as the call could have clobbered them already.  Call-saved registers
aren't a problem, there is unwind info in the callee how to restore that and
the debugger can unwind to the caller.  As GCC generally doesn't track the
length of the call instruction, it uses that end of call instruction - 1
as the label somewhere in the middle of the call instruction, so at the
start of the call instruction can be some locations, during the call other
set and right after the call another set.

        Jakub
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to