Remote serial debuggers
Ramana Radhakrishnan
ramana.radhakrishnan@codito.com
Thu Jan 6 04:39:00 GMT 2005
Russell Shaw wrote:
> Hi,
> What gdb file handles the remote stub interaction? Is it remote.c?
>
remote.c if you use gdbserver or any stub which follows GDB's remote
serial protocol.
> I noticed there's other monitors such as remote-e7000.c, remote-hms.c, etc.
> Do these monitors talk to a debugger using their own protocol instead of
> the
> default gdb stub way?
I assume so . e7000 seems to have its own protocol to communicate to the
stub.
>
> Some remotes use: static struct monitor_ops
> and others use: struct target_ops
>
> What's the difference between a monitor and a target?
The manual says and I quote:
<begin quote>
A "target" is the execution environment occupied by your program. Often,
GDB runs in the same host environment as your program; in
that case, the debugging target is specified as a side effect when you
use the `file' or `core' commands. When you need more flexibility--for
example, running GDB on a physically separate host, or controlling a
standalone system over a serial port or a realtime system over a TCP/IP
connection--you can use the `target' command to specify one of the
target types configured for GDB
<end quote>
So a target is slightly more generic than a monitor. GDB allows you to
use upto 3 targets at the same time. You can be looking at an executable
, a core file and processes. Different commands would automatically
choose the right target in the target "stratum" / stack according to GDB
terminology. For more info refer to info gdb and search for Active
Targets. (Targets could be a remote target, jtag, rom monitor, a native
executable, a remote proxy ) .
A monitor AFAIK refers to just ROM Monitors and an abstraction to use
them . So a monitor would be a target and not vice versa ! :-) ...
HTH
cheers
Ramana
More information about the Gdb
mailing list