From: Pedro Alves <palves@redhat.com>
To: Yao Qi <qiyaoltc@gmail.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 1/2] Use -fno-asynchronous-unwind-tables if C program is compiled without debug info on x86
Date: Fri, 22 Apr 2016 14:36:00 -0000 [thread overview]
Message-ID: <571A36CB.8060001@redhat.com> (raw)
In-Reply-To: <86y485hgdx.fsf@gmail.com>
On 04/22/2016 03:23 PM, Yao Qi wrote:
> I want to focus on handling unavailable memory in frame unwinder, so I
> cannot do all of them above. What I can do are:
>
> 1. Name some unwinders, such as dwarf unwinders, prologue unwinders,
> sigtramp unwinders, stub unwinders, etc. Other unwinders are nameless.
> 2. Add a new maint command "maint set/show preferred-unwinder". This
> command tell GDB to prefer a unwinder during frame unwinding. If the
> unwinder can't be applied to the frame (sniffer fails), it is not chosen.
Instead of a name, maybe a frame-unwinder-class enum, based on
https://sourceware.org/bugzilla/show_bug.cgi?id=19288#c13
~~~~~~~~~~~~~~~
- The "Accurate unwinders"
These would be the DWARF / x64 SEH based ones.
- JIT unwinders
Python/Guile unwind API unwinders, and also the C JIT-reader
API unwinder, in jit.c.
- Fallback prologue unwinders
~~~~~~~~~~~~~~~
Then it could be "required" instead of "preferred", which would
catch problems with the unwinder's sniffer as well.
> 3. Prefer different unwinders (dwarf vs. prologue) in the different
> runs of gdb.trace tests, like
>
> foreach_with_prefix unwinder { "dwarf" "prologue" } {
> gdb_test "maint set preferred-unwinder $unwinder"
> gdb_test "tfind start"
> .....
> gdb_test "tfind stop"
> }
>
> so that the PR 19947 can be reproduced. I'll stop here.
>
> What I don't plan to do in the short term are:
>
> - Write a case, let GDB single-step through its body, including
> prologue, epilogue and its callees, and check "bt" can show the
> frames correctly with different unwinders.
> - Single-step through dynamic symbol resolution / plt, prefer "dwarf"
> unwinder, and check "bt" can show the frames correctly.
>
> Is it OK to you?
>
Yes, that sounds good to me.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2016-04-22 14:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-19 7:50 [PATCH 0/2] PR 19947: throw right exception in read_code and read_stack Yao Qi
2016-04-19 7:50 ` [PATCH 1/2] Use -fno-asynchronous-unwind-tables if C program is compiled without debug info on x86 Yao Qi
2016-04-19 13:35 ` Pedro Alves
2016-04-20 8:38 ` Yao Qi
2016-04-22 12:30 ` Pedro Alves
2016-04-22 14:23 ` Yao Qi
2016-04-22 14:36 ` Pedro Alves [this message]
2016-04-22 16:05 ` Yao Qi
2016-04-19 7:50 ` [PATCH 2/2] Throw NOT_AVAILABLE_ERROR in read_stack and read_code Yao Qi
2016-04-22 13:41 ` Pedro Alves
2016-05-04 14:08 ` Yao Qi
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=571A36CB.8060001@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=qiyaoltc@gmail.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