From: Martin Galvan <martin.galvan@tallertechnologies.com>
To: Pedro Alves <palves@redhat.com>
Cc: gdb-patches@sourceware.org, Doug Evans <dje@google.com>,
Eli Zaretskii <eliz@gnu.org>,
Ulrich Weigand <uweigand@de.ibm.com>,
Daniel Gutson <daniel.gutson@tallertechnologies.com>
Subject: Re: [PING][RFC][PATCH v2] Python API: add gdb.stack_may_be_invalid
Date: Fri, 07 Nov 2014 17:18:00 -0000 [thread overview]
Message-ID: <CAOKbPbZaG0MBhD2yqJw-29JvEJqFHTVtpvMVV-Oh9E64SKNF3A@mail.gmail.com> (raw)
In-Reply-To: <545CFCCA.1070304@redhat.com>
On Fri, Nov 7, 2014 at 2:09 PM, Pedro Alves <palves@redhat.com> wrote:
> On 11/07/2014 01:32 PM, Martin Galvan wrote:
>> 2) The behavior of handle_step_into_function and setting breakpoints
>> is inconsistent for optimized code, at least in ARM. If you step into
>> a function in a program compiled with gcc -O1, you'll see the PC ends
>> up one instruction after the set of instructions that place the
>> arguments passed as registers in the registers they'll be used in. If
>> you do "break myFunction", however, the breakpoint will correctly be
>> placed at the very first instruction. Both handle_step.. and setting
>> breakpoints have the same effect on -O0 code.
>
> We should really fix this. I can't imagine we do this on purpose.
Indeed we should. I'll gladly fix this myself once we're done with this patch.
>> If we look at how "break myFunction" works, we'll see that we end up
>> calling find_function_start_sal to determine at which PC we have to
>> place our breakpoint. Therefore, that's the function we should be
>> calling when checking whether the stack frame will be valid at a
>> prologue, as it also accounts for optimizations.
>
> We expose functions and sals as python objects.
> Shouldn't we instead consider exposing find_function_start_sal
> in the function object? Or maybe symbol_to_sal in the Symbol object?
> I can well imagine these being useful to other use cases.
We could do so, but for this use case we'd still need a way to check
if the stack has been destroyed by e.g. an epilogue.
If we want to make the API as primitive as possible, we could again
expose two functions instead of one (as in my previous patch).
--
Martín Galván
Software Engineer
Taller Technologies Argentina
San Lorenzo 47, 3rd Floor, Office 5
Córdoba, Argentina
Phone: 54 351 4217888 / +54 351 4218211
next prev parent reply other threads:[~2014-11-07 17:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-07 13:32 Martin Galvan
2014-11-07 17:09 ` Pedro Alves
2014-11-07 17:18 ` Martin Galvan [this message]
2014-11-07 17:27 ` Ulrich Weigand
2014-11-07 17:37 ` Martin Galvan
2014-11-12 15:55 ` Martin Galvan
2014-11-12 17:06 ` Doug Evans
2014-11-12 17:20 ` Pedro Alves
2014-11-12 17:26 ` Martin Galvan
2014-11-12 17:32 ` Doug Evans
2014-11-12 17:24 ` Martin Galvan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAOKbPbZaG0MBhD2yqJw-29JvEJqFHTVtpvMVV-Oh9E64SKNF3A@mail.gmail.com \
--to=martin.galvan@tallertechnologies.com \
--cc=daniel.gutson@tallertechnologies.com \
--cc=dje@google.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=uweigand@de.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox