From: Simon Marchi via Gdb <gdb@sourceware.org>
To: "Thomas Weißschuh" <thomas@t-8ch.de>
Cc: gdb@sourceware.org
Subject: Re: Remote query for structure layout
Date: Mon, 29 Mar 2021 15:42:38 -0400 [thread overview]
Message-ID: <63fba577-8dfd-f04b-2bc4-64645a084328@polymtl.ca> (raw)
In-Reply-To: <51319e86-d463-475c-ad50-b998ac507463@t-8ch.de>
On 2021-03-29 1:33 p.m., Thomas Weißschuh wrote:
> Hi!
>
> On Mo, 2021-03-29T12:05-0400, Simon Marchi wrote:
>> On 2021-03-28 7:06 a.m., Thomas Weißschuh wrote:> Hi everybody,
>>> 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 think that would make sense. We already help the stub look up some
>> things in the debugged process using qSymbol, so it would be a bit silly
>> to say "now you're on your own to interpret it!".
>
> Good to know, I'll take a shot at it.
>
>> If we go there, we could also help the stub make the link between the
>> symbol and its type, so that you don't have to hardcode that symbol
>> "foo" is of type "foo_t". For example, if you could also pass a symbol
>> name (like pxCurrentTCB) to qType, you wouldn't have to hardcode its
>> type name in the openocd source code, it's one less thing that can go
>> wrong. Or it could be another packet that does symbol name to type
>> name, which you then pass to qType.
>
> Would it not make more sense to report the type of a symbol as part of qSymbol?
> Gated behind a qSupported flag "qSymbol:type+" or so?
If it can easily be made in a backwards-compatible way (considering all
permutations of old gdb / new gdb, old stub / new stub), sure.
> What do you think about the dataformat of the qType response?
> Should it be a homegrown textformat or XML which would be much easier to
> extend.
The problem with XML is that it would need to be parsed on the target
side. We try to keep things simple on the target, because that may be
on a constrained device, you don't want to have to include an
XML-parsing library. XML the other way (from stub to GDB) is OK,
because it's easy to produce some basic XML using printf, and GDB can
link with an XML parsing library.
So I would lean towards a home-grown format, but it's more work to
ensure it is extensible if we want to include more information in the
replies in the future.
I don't know all the remote packets by heart, maybe there's one that
already uses a scheme that could be re-used here. Otherwise, XML can
certainly be used to start prototyping. With the appropriate
abstractions in place, it should be relatively easy to swap the
encoding for another one.
Simon
next prev parent reply other threads:[~2021-03-29 19:42 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
[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
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
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=63fba577-8dfd-f04b-2bc4-64645a084328@polymtl.ca \
--to=gdb@sourceware.org \
--cc=simon.marchi@polymtl.ca \
--cc=thomas@t-8ch.de \
/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