Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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