public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
* Adding new target type
@ 2007-09-05 19:32 Robert S. Grimes
  2007-09-05 19:39 ` Keith Seitz
  0 siblings, 1 reply; 8+ messages in thread
From: Robert S. Grimes @ 2007-09-05 19:32 UTC (permalink / raw)
  To: insight

Hi,

I'm trying to add a new target type to the Target Settings dialog. 
Specifically, I've patched the underlying gdb with a new target that is
invoked like this from gdb:

  target rtems-remote 192.168.1.55:2159

Where, of course, the 192.168.1.55 is replaced with the actual ip
address of the board to be debugged.  However, Insight only as usual
four choices.  How do I add one?

Seems like a real simple thing to do, but I don't have a clue -
searching didn't come up with anything, but that could well be that I
don't know how best to ask the question!

Thanks!
-Bob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 19:32 Adding new target type Robert S. Grimes
@ 2007-09-05 19:39 ` Keith Seitz
  2007-09-05 20:33   ` Robert S. Grimes
  0 siblings, 1 reply; 8+ messages in thread
From: Keith Seitz @ 2007-09-05 19:39 UTC (permalink / raw)
  To: Robert S. Grimes; +Cc: insight

Robert S. Grimes wrote:
>   target rtems-remote 192.168.1.55:2159
> 

This should be pretty easy. You're essentially trying to do just what 
gdb's built-in Remote/TCP target does. Take a look at this target in the 
target database in gdb/gdbtk/library/targetselection.itb.

Keith

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 19:39 ` Keith Seitz
@ 2007-09-05 20:33   ` Robert S. Grimes
  2007-09-05 20:44     ` Keith Seitz
  0 siblings, 1 reply; 8+ messages in thread
From: Robert S. Grimes @ 2007-09-05 20:33 UTC (permalink / raw)
  To: Keith Seitz; +Cc: insight


Keith Seitz wrote:
> Robert S. Grimes wrote:
>>   target rtems-remote 192.168.1.55:2159
>>
>
> This should be pretty easy. You're essentially trying to do just what
> gdb's built-in Remote/TCP target does. Take a look at this target in
> the target database in gdb/gdbtk/library/targetselection.itb.
>
Hi Keith,

Right, should be - that's what I was hoping for!  I looked at the file
you referenced, and made these changes

<snip>
  # Remote
<snip>
  set gdb_target(remotetcp,pretty-name) "Remote/TCP"
  set gdb_target(remotetcp,defbaud) "TCP"
  set gdb_target(remotetcp,baud-rates) {}
  set gdb_target(remotetcp,cmd) "remote tcpX"
  set gdb_target(remotetcp,runlist) {1 1 0 1}
  set gdb_target(remotetcp,after_attaching) {}

  # RTEMS Remote - NEW!
  set gdb_target(rtemsremotetcp,pretty-name) "RTEMS Remote/TCP"
  set gdb_target(rtemsremotetcp,defbaud) "TCP"
  set gdb_target(rtemsremotetcp,baud-rates) {}
  set gdb_target(rtemsremotetcp,cmd) "rtems-remote tcpX"
  set gdb_target(rtemsremotetcp,runlist) {1 1 0 1}
  set gdb_target(rtemsremotetcp,after_attaching) {}

Then I rebuilt and installed ("make && make install").  Didn't seem to
make any difference, so I did a "make clean" in the gdb/gdbtk directory,
and tried again.  Make worked a bit harder, but the results are the same
- no new target.

Looking in the file you mentioned, there are a whole lot of targets! 
Many more than I have ever seen.  So, I must be missing the magic step
where I specify which targets to include in the build, right?  How is
that done?

Thanks!
-Bob
> Keith
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 20:33   ` Robert S. Grimes
@ 2007-09-05 20:44     ` Keith Seitz
  2007-09-05 20:56       ` Robert S. Grimes
  0 siblings, 1 reply; 8+ messages in thread
From: Keith Seitz @ 2007-09-05 20:44 UTC (permalink / raw)
  To: Robert S. Grimes; +Cc: insight

Robert S. Grimes wrote:
> <snip>
>   # Remote
> <snip>
>   set gdb_target(remotetcp,pretty-name) "Remote/TCP"
>   set gdb_target(remotetcp,defbaud) "TCP"
>   set gdb_target(remotetcp,baud-rates) {}
>   set gdb_target(remotetcp,cmd) "remote tcpX"
>   set gdb_target(remotetcp,runlist) {1 1 0 1}
>   set gdb_target(remotetcp,after_attaching) {}
> 
>   # RTEMS Remote - NEW!
>   set gdb_target(rtemsremotetcp,pretty-name) "RTEMS Remote/TCP"
>   set gdb_target(rtemsremotetcp,defbaud) "TCP"
>   set gdb_target(rtemsremotetcp,baud-rates) {}
>   set gdb_target(rtemsremotetcp,cmd) "rtems-remote tcpX"
>   set gdb_target(rtemsremotetcp,runlist) {1 1 0 1}
>   set gdb_target(rtemsremotetcp,after_attaching) {}

That looks correct.

> Then I rebuilt and installed ("make && make install").  Didn't seem to
> make any difference, so I did a "make clean" in the gdb/gdbtk directory,
> and tried again.  Make worked a bit harder, but the results are the same
> - no new target.

Hmm... Odd... [BTW, it's tcl: just reinstall or copy the changed 
targetselection.itb to the install directory.]

The only thing I can think of off the top of my head (other than an 
installation error) is TargetSelection::valid_target, which will attempt 
to do the cli command "help target rtems-remote".

Does this return something valid for your target? If it errors, your 
target will not show up in the dialog.

Keith

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 20:44     ` Keith Seitz
@ 2007-09-05 20:56       ` Robert S. Grimes
  2007-09-05 21:07         ` Keith Seitz
  0 siblings, 1 reply; 8+ messages in thread
From: Robert S. Grimes @ 2007-09-05 20:56 UTC (permalink / raw)
  To: Keith Seitz; +Cc: insight

Keith Seitz wrote:
>>   # RTEMS Remote - NEW!
>>   set gdb_target(rtemsremotetcp,pretty-name) "RTEMS Remote/TCP"
>>   set gdb_target(rtemsremotetcp,defbaud) "TCP"
>>   set gdb_target(rtemsremotetcp,baud-rates) {}
>>   set gdb_target(rtemsremotetcp,cmd) "rtems-remote tcpX"
>>   set gdb_target(rtemsremotetcp,runlist) {1 1 0 1}
>>   set gdb_target(rtemsremotetcp,after_attaching) {}
>
> That looks correct.

Thanks for the confirmation.
>
> Hmm... Odd... [BTW, it's tcl: just reinstall or copy the changed
> targetselection.itb to the install directory.]

Oh!
>
> The only thing I can think of off the top of my head (other than an
> installation error) is TargetSelection::valid_target, which will
> attempt to do the cli command "help target rtems-remote".
>
> Does this return something valid for your target? If it errors, your
> target will not show up in the dialog.
Yes, here is what I get from the console window:

  (gdb) help target rtems-remote
  rtems target; specify link: <serial_dev> | <host>:<port>

I also tried this, just in case:

  (gdb) help target rtems-remote tcpX
  rtems target; specify link: <serial_dev> | <host>:<port>

And of course, this works:

  (gdb) target rtems-remote 192.168.1.55:2159

at least with gdb only.

Any other ideas?

Thanks!
-Bob
>
> Keith
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 20:56       ` Robert S. Grimes
@ 2007-09-05 21:07         ` Keith Seitz
  2007-09-05 21:46           ` Robert S. Grimes
  0 siblings, 1 reply; 8+ messages in thread
From: Keith Seitz @ 2007-09-05 21:07 UTC (permalink / raw)
  To: Robert S. Grimes; +Cc: insight

Robert S. Grimes wrote:
> And of course, this works:
> 
>   (gdb) target rtems-remote 192.168.1.55:2159
> 
> at least with gdb only.

Fooey.

> Any other ideas?

Ah, I think I know what it could be... You wrote:

   # RTEMS Remote - NEW!
   set gdb_target(rtemsremotetcp,pretty-name) "RTEMS Remote/TCP"
   set gdb_target(rtemsremotetcp,defbaud) "TCP"
   set gdb_target(rtemsremotetcp,baud-rates) {}
   set gdb_target(rtemsremotetcp,cmd) "rtems-remote tcpX"
   set gdb_target(rtemsremotetcp,runlist) {1 1 0 1}
   set gdb_target(rtemsremotetcp,after_attaching) {}

This isn't going to work. Take a look at TargetSelection::fill_targets 
and TargetSelection::get_target_list. If you type "help target", you 
should get your target in the output. I'm guessing a line that looks 
like "target rtems-remote -- BLAH BLAH". The "rtems-remote" is the 
actual name of the target, and the one you need to use as the lead index 
in the target database instead of "rtemsremotetcp". The dummy "tcp" 
targets are for targets which have multiple connection possibilities.

See if that fixes anything. [It might help to put a "dbug" statement in 
TargetSelection::fill_targets so that you tell what it is doing.]

Keith

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 21:07         ` Keith Seitz
@ 2007-09-05 21:46           ` Robert S. Grimes
  2007-09-05 22:15             ` Keith Seitz
  0 siblings, 1 reply; 8+ messages in thread
From: Robert S. Grimes @ 2007-09-05 21:46 UTC (permalink / raw)
  To: Keith Seitz; +Cc: insight

Keith Seitz wrote:
>
> This isn't going to work. Take a look at TargetSelection::fill_targets
> and TargetSelection::get_target_list. If you type "help target", you
> should get your target in the output. I'm guessing a line that looks
> like "target rtems-remote -- BLAH BLAH". The "rtems-remote" is the
> actual name of the target, and the one you need to use as the lead
> index in the target database instead of "rtemsremotetcp". The dummy
> "tcp" targets are for targets which have multiple connection
> possibilities.

Not really following you exactly, but... it works!  Here's what I put there:

  # RTEMS Remote
#  set gdb_target(rtems-remote,pretty-name) "RTEMS Remote"
#  set gdb_target(rtems-remote,defbaud) "38400"
#  set gdb_target(rtems-remote,baud-rates) {9600 19200 38400 57600 115200}
#  set gdb_target(rtems-remote,cmd) "rtems-remote com1"
#  set gdb_target(rtems-remote,runlist) {1 1 0 1}
#  set gdb_target(rtems-remote,after_attaching) {}
  set gdb_target(rtems-remote,pretty-name) "RTEMS Remote/TCP"
  set gdb_target(rtems-remote,defbaud) "TCP"
  set gdb_target(rtems-remote,baud-rates) {}
  set gdb_target(rtems-remote,cmd) "rtems-remote tcpX"
  set gdb_target(rtems-remote,runlist) {1 1 0 1}
  set gdb_target(rtems-remote,after_attaching) {}

When I open the Target Selection dialog now, I see "RTEMS Remote/TCP",
and when I select that, it gets pre-filled with 192.168.1.69, port 2159,
just like I want it to!  Of course, I'm not sure where those host:port
values came from, but I'm guessing its some cache action on the part of
gdb, as that's the last target I attempted to - is that right?

Note from the above that I was also trying to get the serial setup to
work, but that presented one oddity - when I selected the serial RTEMS
target, the Baud value started out with "TCP" instead of 38400 - odd. 
But don't worry, I don't want to use the serial port anyway, and even if
I did, I could live with that.

Thanks, Kevin!!!
-Bob
>
> See if that fixes anything. [It might help to put a "dbug" statement
> in TargetSelection::fill_targets so that you tell what it is doing.]
>
> Keith
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding new target type
  2007-09-05 21:46           ` Robert S. Grimes
@ 2007-09-05 22:15             ` Keith Seitz
  0 siblings, 0 replies; 8+ messages in thread
From: Keith Seitz @ 2007-09-05 22:15 UTC (permalink / raw)
  To: Robert S. Grimes; +Cc: insight

Robert S. Grimes wrote:
> 
> Not really following you exactly, but... it works!  Here's what I put there:

I think you followed me exactly... :-)

> When I open the Target Selection dialog now, I see "RTEMS Remote/TCP",
> and when I select that, it gets pre-filled with 192.168.1.69, port 2159,
> just like I want it to!  Of course, I'm not sure where those host:port
> values came from, but I'm guessing its some cache action on the part of
> gdb, as that's the last target I attempted to - is that right?

Hmm. I don't know where that would have come from. Insight's target 
settings are pretty disjoint from gdb's... Nonetheless, Insight should 
remember these numbers for you after you enter them the first time.

> Note from the above that I was also trying to get the serial setup to
> work, but that presented one oddity - when I selected the serial RTEMS
> target, the Baud value started out with "TCP" instead of 38400 - odd. 

Yeah, that is odd. As long as you have the two database targets 
"rtems-remote" and "rtems-remotetcp", you should be fine. Just 
cut-n-paste the entries for Remote Serial/TCP.

> But don't worry, I don't want to use the serial port anyway, and even if
> I did, I could live with that.

Okay -- cool!

Happy hacking,
Keith

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-09-05 22:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-05 19:32 Adding new target type Robert S. Grimes
2007-09-05 19:39 ` Keith Seitz
2007-09-05 20:33   ` Robert S. Grimes
2007-09-05 20:44     ` Keith Seitz
2007-09-05 20:56       ` Robert S. Grimes
2007-09-05 21:07         ` Keith Seitz
2007-09-05 21:46           ` Robert S. Grimes
2007-09-05 22:15             ` Keith Seitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).