From: Simon Marchi via Gdb <gdb@sourceware.org>
To: David Blaikie <dblaikie@gmail.com>
Cc: Tim Newsome <tim@sifive.com>, gdb <gdb@sourceware.org>
Subject: Re: Remote query for structure layout
Date: Tue, 30 Mar 2021 17:49:43 -0400 [thread overview]
Message-ID: <6b00bbbe-1400-7f11-bdcf-811595bf8e31@polymtl.ca> (raw)
In-Reply-To: <CAENS6EsWCB04LcFxE7gvojoZ5MH3nxuBATuHSLtFEPa9=APVkw@mail.gmail.com>
On 2021-03-30 5:41 p.m., David Blaikie wrote:>
> Is the register layout in this struct part of the ABI? If so the debugger could assume it/hardcode the knowledge.
I don't think this is part of any ABI, this is just how FreeRTOS stores
the registers of inactive tasks. So it's like an implementation detail
of FreeRTOS, but one that the debugger needs to know in order to inspect
existing threads.
From what I undersand from Tim's message, the GDB stub inside OpenOCD
already hardcodes that knowledge, but the problem is that the layout can
change based on compilation options (which OpenOCD probably can't easily
detect), and the layout could change between FreeRTOS versions.
> If not, then it seems to me the right thing might be for the compiler to have builtin support for emitting this struct under a reserved name into every CU, perhaps? Not relying on source quirks to encourage it (as you say, would leave you at the whims of the compiler implementation), but actually make it explicitly part of compiler support for this architecture.
Maybe an attribute
struct the_struct {
} __attribute__((always_emit_debug));
?
Simon
next prev parent reply other threads:[~2021-03-30 21:49 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
2021-03-30 21:33 ` Simon Marchi via Gdb
2021-03-30 21:41 ` David Blaikie via Gdb
2021-03-30 21:49 ` Simon Marchi via Gdb [this message]
2021-03-30 22:03 ` David Blaikie via Gdb
2021-03-30 22:38 ` Simon Marchi via Gdb
2021-03-30 22:44 ` David Blaikie via Gdb
2021-03-31 0:16 ` Simon Marchi via Gdb
2021-03-31 3:27 ` David Blaikie via Gdb
2021-03-31 13:00 ` Simon Marchi via Gdb
2021-04-02 22:05 ` David Blaikie via Gdb
2021-04-03 19:39 ` Simon Marchi via Gdb
2021-03-31 14:06 ` Tim Newsome
2021-03-28 11:06 Thomas Weißschuh
2021-03-29 16:05 ` Simon Marchi via Gdb
2021-03-29 17:33 ` Thomas Weißschuh
2021-03-29 19:42 ` Simon Marchi via Gdb
2021-03-29 20:02 ` Philippe Waroquiers via Gdb
2021-03-29 20:10 ` Simon Marchi via Gdb
2021-03-29 20:20 ` Philippe Waroquiers via Gdb
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=6b00bbbe-1400-7f11-bdcf-811595bf8e31@polymtl.ca \
--to=gdb@sourceware.org \
--cc=dblaikie@gmail.com \
--cc=simon.marchi@polymtl.ca \
--cc=tim@sifive.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