public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Luis Machado <luis.machado@arm.com>
To: Simon Marchi <simon.marchi@polymtl.ca>, gdb-patches@sourceware.org
Cc: thiago.bauermann@linaro.org
Subject: Re: [PATCH v5 13/16] [gdb/generic] corefile/bug: Fixup (gcore) core file target description reading order
Date: Wed, 13 Sep 2023 14:57:10 +0100	[thread overview]
Message-ID: <0d9a3693-d57f-8560-34d5-ad3db4ade4bb@arm.com> (raw)
In-Reply-To: <5d4e32ce-8e52-49ab-927a-cc850528e44a@polymtl.ca>

On 9/13/23 14:50, Simon Marchi wrote:
>>> I'm not convinced that this is right.  The current role of
>>> gdbarch_core_read_description (AFAIU) is to provide a fallback to the
>>> note method.  Usually, the note method is preferred, because it's
>>> precise, but if there's no note, maybe the gdbarch can derive a tdesc
>>> from what it sees in the core.  Naturally, this use of
>>> gdbarch_core_read_description (as a fallback) has to go after trying the
>>> note method.
>>>
>>> Now, you want to to use gdbarch_core_read_description as an override to
>>> the note method, which is why you want to call it before trying the note
>>> method.  I don't think the same gdbarch method can be used for both
>>> fallback and override.  With your change, with an arch that defines a
>>> gdbarch_core_read_description hook, where we would have used the note
>>> before, we will now always use the hook.  Not what we want.
>>
>> Yeah, it seems that way unfortunately. Looking back, maybe it would've been better to define the gdb tdesc note as a per-thread entry instead.
>>
>> I suppose we can still do it from now on, but the previous core files generated by gdb would
>> still need to be handled in a special way for AArch64.
>>
>>>
>>> Some options I see:
>>>
>>>  - Add another gdbarch hook, so one is called before trying the note,
>>>    and one after.
>>>  - Add another gdbarch hook that allows the arch to modify the target
>>>    desc read from the note.  So the flow would be:
>>>    core_target::read_description creates a target from the note, then
>>>    calls the gdbarch hook.  The latter could return the same tdesc, or a
>>>    new tdesc.  The AArch64 hook could then create a new tdesc based on
>>>    the one read from the note, but with the SVE/SME bits tweaked.
>>
>> I think the first solution would work. But I see it as a temporary measure until we update the core file target description note to be per-thread.
>>
>> After that, I believe the gdbarch hook wouldn't be too useful.
> Well, as you mentioned above, there will still be the case of supporting
> old cores that only have one global target description note, right?

Yes, that's true. Though I'd expect the most common case of generated
core files to be ones generated by a crash as opposed to gdb's gcore command. And
the core files generated by the Linux kernel, for instance, wouldn't carry the target
description note.

But, as I mentioned on IRC, even with the introduction of such a gdbarch hook, we'd still
run into other issues that need to be fixed before threaded core files will work correctly
for AArch64's SVE and SME. It is something that is broken currently. But those would be
best addressed with a different patch set.

> 
> Simon
> 


  reply	other threads:[~2023-09-13 13:57 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-07 15:20 [PATCH v5 00/16] SME support for AArch64 gdb/gdbserver on Linux Luis Machado
2023-09-07 15:20 ` [PATCH v5 01/16] [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux Luis Machado
2023-09-07 15:20 ` [PATCH v5 02/16] [gdb/aarch64] refactor: Rename SVE-specific files Luis Machado
2023-09-07 15:20 ` [PATCH v5 03/16] [gdb/gdbserver] refactor: Simplify SVE interface to read/write registers Luis Machado
2023-09-07 15:20 ` [PATCH v5 04/16] [gdb/aarch64] sve: Fix return command when using V registers in a SVE-enabled target Luis Machado
2023-09-07 15:20 ` [PATCH v5 05/16] [gdb/aarch64] sme: Enable SME registers and pseudo-registers Luis Machado
2023-09-07 15:20 ` [PATCH v5 06/16] [gdbserver/aarch64] refactor: Adjust expedited registers dynamically Luis Machado
2023-09-08 15:35   ` Simon Marchi
2023-09-08 16:00     ` Luis Machado
2023-09-08 16:52       ` Simon Marchi
2023-09-07 15:20 ` [PATCH v5 07/16] [gdbserver/aarch64] sme: Add support for SME Luis Machado
2023-09-07 15:20 ` [PATCH v5 08/16] [gdb/aarch64] sve: Fix signal frame z/v register restore Luis Machado
2023-09-07 15:20 ` [PATCH v5 09/16] [gdb/aarch64] sme: Signal frame support Luis Machado
2023-09-07 15:20 ` [PATCH v5 10/16] [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes Luis Machado
2023-09-08 11:08   ` Luis Machado
2023-09-08 15:48     ` Simon Marchi
2023-09-08 15:51       ` Simon Marchi
2023-09-08 15:51       ` Luis Machado
2023-09-08 15:59         ` Simon Marchi
2023-09-07 15:20 ` [PATCH v5 11/16] [gdb/aarch64] sme: Support TPIDR2 signal frame context Luis Machado
2023-09-07 15:20 ` [PATCH v5 12/16] [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping register state to core files Luis Machado
2023-09-08 11:09   ` Luis Machado
2023-09-08 15:58     ` Simon Marchi
2023-09-08 16:02       ` Simon Marchi
2023-09-08 16:05       ` Luis Machado
2023-09-07 15:20 ` [PATCH v5 13/16] [gdb/generic] corefile/bug: Fixup (gcore) core file target description reading order Luis Machado
2023-09-08 11:10   ` Luis Machado
2023-09-08 17:10   ` Simon Marchi
2023-09-12  8:49     ` Luis Machado
2023-09-13 13:50       ` Simon Marchi
2023-09-13 13:57         ` Luis Machado [this message]
2023-09-07 15:20 ` [PATCH v5 14/16] [gdb/aarch64] sme: Core file support for Linux Luis Machado
2023-09-07 15:20 ` [PATCH v5 15/16] [gdb/testsuite] sme: Add SVE/SME testcases Luis Machado
2023-09-07 15:20 ` [PATCH v5 16/16] [gdb/docs] sme: Document SME registers and features Luis Machado
2023-09-13  3:03 ` [PATCH v5 00/16] SME support for AArch64 gdb/gdbserver on Linux Thiago Jung Bauermann
2023-09-13 10:20   ` Luis Machado

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=0d9a3693-d57f-8560-34d5-ad3db4ade4bb@arm.com \
    --to=luis.machado@arm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@polymtl.ca \
    --cc=thiago.bauermann@linaro.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).