[PATCH] D42582: [lldb][PPC64] Fixed step-in stopping in the wrong line

Leandro via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 6 03:31:51 PST 2018


Ok, so we should mark the global entry point as a trampoline by setting the
symbol type to lldb::eSymbolTypeTrampoline, right?

For ELF files, this seems to be done in ObjectFileELF.cpp,
ParseTrampolineSymbols.
But as this change will be specific to ppc64, and the local entry point is
encoded in the "other" field of the function symbol itself, where would be
the best place to insert this new code?
Maybe a new conditional arch-specific step in ObjectFileELF::ParseSymbols,
similar to those of ARM and MIPS?

- Leandro

On Mon, Feb 5, 2018 at 4:03 PM, Jim Ingham <jingham at apple.com> wrote:

> As long as the prologue computation is done correctly we won't ever stop
> at the global entry point separately from the local one.  The will - after
> prologue skipping - resolve to the same address, and both stepping and
> breakpoint setting skip to the prologue unless you explicitly tell them not
> to.  So while I see the formal niceness of calling this a prologue, I don't
> think it is necessary.
>
> Jim
>
>
> > On Feb 3, 2018, at 3:38 AM, Leandro Lupori via Phabricator <
> reviews at reviews.llvm.org> wrote:
> >
> > luporl added a comment.
> >
> >> if you have a global entry point, is there ever any reason to stop at
> these? Is there anything you can debug in the global entry point?
> >
> > You can look at it as part of the prologue. You'll want to debug it only
> if you want to debug the prologue.
> >
> >> Does a global entry point always forward on to a local entry point?
> >
> > When there are 2 entry points, yes, the global entry point always
> forwards to the local entry point.
> >
> >> Does the local entry point always exists and is it the only thing that
> can be debugged?
> >
> > Some functions may have only one entry point, be it local or global. If
> you don't want to debug the prologue, you will actually want to skip some
> bytes past the local entry point, to get past the prologue, to code that
> can be debugged.
> >
> > Overall you can look at the local entry point as a kind of optimization,
> that enables a local call to skip part of the prologue.
> >
> >
> > https://reviews.llvm.org/D42582
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180206/58921a4d/attachment.html>


More information about the llvm-commits mailing list