public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Tim Newsome <tim@sifive.com>
To: gdb <gdb@sourceware.org>
Subject: Re: Remote query for structure layout
Date: Tue, 30 Mar 2021 13:35:14 -0700	[thread overview]
Message-ID: <CAGDihekwOoUnEYOHkFKm7c74JyKCozJaDsyXwFjKnGJvD8xieA@mail.gmail.com> (raw)
In-Reply-To: <mailman.6.1616932808.1485743.gdb@sourceware.org>

On Sun, Mar 28, 2021 at 5:00 AM <gdb-request@sourceware.org> wrote:

> I would like to propose a new command for the remote protocol that can be
> used to
> query structure layouts.
> Essentially a `qSymbol` equivalent for the output of `ptype`.
>

I'm really interested in this. I've been working on OpenOCD FreeRTOS
support and as Thomas points out, it's a fragile mess.

There's another use case that this would be great for. FreeRTOS stores
registers on the stack when it switches to another thread. OpenOCD needs to
know what this register layout is, and it also depends on compile time
options. With this mechanism I think it would be possible for FreeRTOS to
define a struct that represents how the registers are laid out on the
stack. E.g.:
struct register_stacking_t {
    uint32_t x1;
    uint32_t x2;
    uint32_t x3;
    uint32_t x4;
...
    uint32_t pc;
};

Am I right that this will end up in the dwarf info even if the struct
itself isn't used anywhere in the FreeRTOS code? This would simplify so
much.

Tim

       reply	other threads:[~2021-03-30 20:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.6.1616932808.1485743.gdb@sourceware.org>
2021-03-30 20:35 ` Tim Newsome [this message]
2021-03-30 21:33   ` Simon Marchi
2021-03-30 21:41     ` David Blaikie
2021-03-30 21:49       ` Simon Marchi
2021-03-30 22:03         ` David Blaikie
2021-03-30 22:38           ` Simon Marchi
2021-03-30 22:44             ` David Blaikie
2021-03-31  0:16               ` Simon Marchi
2021-03-31  3:27                 ` David Blaikie
2021-03-31 13:00                   ` Simon Marchi
2021-04-02 22:05                     ` David Blaikie
2021-04-03 19:39                       ` Simon Marchi
2021-03-31 14:06                   ` Tim Newsome
2021-03-28 11:06 Thomas Weißschuh
2021-03-29 16:05 ` Simon Marchi
2021-03-29 17:33   ` Thomas Weißschuh
2021-03-29 19:42     ` Simon Marchi
2021-03-29 20:02       ` Philippe Waroquiers
2021-03-29 20:10         ` Simon Marchi
2021-03-29 20:20           ` Philippe Waroquiers

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=CAGDihekwOoUnEYOHkFKm7c74JyKCozJaDsyXwFjKnGJvD8xieA@mail.gmail.com \
    --to=tim@sifive.com \
    --cc=gdb@sourceware.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).