This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Adding-new-target difficulties


Hello,

[Note: I'm adding support for ARMs RealView ICE to GDB]

I'm trying to add a new target to GDB, but I'm not sure whether
following the procedure in the user guide is going to give me what I
want. Is there a more straightforward way?


I need a new target which allows me to communicate via tcp/ip but allows
me to change the Remote Serial Protocol to RV-MSG (RealView Protocol). The different protocol affects everything device; connect/disconnection,
code loading, breakpoints, etc.

(GDB's remote serial protocol?)


It sounds like you're trying to on-the-fly replace one target stack (gdb's remote) with a second (your protocol)?

Could you hack your new target (that used serial for tcp communication) fudge enough GDB remote protocol commands to trigger the mode switch?


Where exactly does GDB spit stuff out for a TCP/IP connection? I've
been looking at remote.c and serial.c which seems to have functions
related to it and another that looks promising is ser-tcp.c. Could I
simply add a switch to the command 'target remote host?' Or add a case
clause that detects if the hostname is 'RV-ICE' or something? I could
perhaps then branch off to my code, calling GDB functions as and when?

Normally new remote targets are added as new commands vis:


	target remote
	target m32r
	target pmon
	target ...

this occures because the target*.c file has registered itself (see the _initialize function). When the user enters "target ..." the corresponding ..._target_open being called. After that it is a case of working through each of the vectors implementing those that are needed.

For the transport, yes serial.[hc] is used.

You may also want to look at the async code - it lets you implement things in a more event driven style.

Andrew




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]