From: Daniel Jacobowitz <drow@false.org>
To: "Decker, Paul" <Paul.Decker@analog.com>
Cc: gdb@sources.redhat.com
Subject: Re: gdb port project
Date: Mon, 25 Apr 2005 18:49:00 -0000 [thread overview]
Message-ID: <20050425130441.GB7316@nevyn.them.org> (raw)
In-Reply-To: <E21A9A52FF03B249B20F0DC563DEBB311897855C@nwd2exm3.ad.analog.com>
On Fri, Apr 22, 2005 at 01:30:06PM -0400, Decker, Paul wrote:
>
>
>
> Hello everyone,
>
> We've been considering a port of gdb to support a new processor. A
> couple of implementation specific questions seem to come to mind and I
> was curious if anyone had any ideas on these:
>
> 1. The gdb port would consist of the gdb application and a gdb
> proxy(server) which would connect to a custom ICE. The gdb proxy has a
> list of registers for the specific processor which are in a specific
> order. The gdb application also will have a list of registers. Is
> there a way to insure these register lists are in 'sync' with each
> other, for example if an older version of the gdb proxy were used with a
> newer gdb which supported more registers, or registers in a different
> order. This question could also be extended to include a basic gdb
> connecting to a proxy which supported multiple derivatives of the same
> processor, perhaps with a different feature set.
>
> One thought I had was to extend the gdb debugger to ask, on startup, the
> proxy how many registers it supported, what their names were, and what
> order they were in.
GDB doesn't currently support anythin like that. But, I think it will
soon; I have a prototype implementation which is pretty similar to what
you describe. I just need to find the time to propose it properly.
Normally you just define a register mapping, and make sure to add new
registers at the end.
> 2. I've searched around for multi-processing support within gdb, and I
> don't see much in the way of supporting debugging multi-processor
> systems. Specifically, if a processor has multiple cores, is there any
> standard convention for gdb to support this?
>
> My initial idea was to have the proxy & ice support the multi cores, and
> have the ability of two instances of gdb to be started, the first
> instance would connect over tcp to port n, the second instance would
> connect to the second core on port n+1. This way, 1 to n multi-cores
> could be debugged and controlled. The downside is that there are no
> native multi-processor commands in gdb, for example, a run would cause a
> specific core to start running. There isn't a method of issuing a 'run
> all' or a 'run group' to cause all the cores to or a group of cores to
> start running.
In general, you use a single GDB and a single stub. You present the
multiple cores as threads of a single program. Anything missing in GDB
for dealing with multiple cores is likely to be missing for dealing
with threads, too; the models are very similar.
--
Daniel Jacobowitz
CodeSourcery, LLC
prev parent reply other threads:[~2005-04-25 13:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-22 17:30 Decker, Paul
2005-04-25 13:01 ` Ramana Radhakrishnan
2005-04-25 18:49 ` Daniel Jacobowitz [this message]
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=20050425130441.GB7316@nevyn.them.org \
--to=drow@false.org \
--cc=Paul.Decker@analog.com \
--cc=gdb@sources.redhat.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