Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: drow@false.org (Daniel Jacobowitz)
Cc: gdb-patches@sourceware.org, eliz@gnu.org
Subject: Re: [rfc/rfa] [4/4] SPU enhancements: GDB/MI extensions
Date: Mon, 04 Jun 2007 22:59:00 -0000	[thread overview]
Message-ID: <200706042259.l54MxK0A025170@d12av02.megacenter.de.ibm.com> (raw)
In-Reply-To: <20070604202224.GA26302@caradoc.them.org> from "Daniel Jacobowitz" at Jun 04, 2007 04:22:24 PM

Daniel Jacobowitz wrote:

> Right, but I didn't mean something quite that ambitious.  What does
> the IDE end up doing with the output of these commands, and does it
> want to parse them or just display them as text?

It certainly parses the information for display; for example, the
-spu-info-dma command results in output like (added whitespace for
better readability):

(gdb)
-spu-info-dma
^done,SPUInfoDMA=
{
  dma_info_type="0x0",
  dma_info_mask="0x20",
  dma_info_status="0x0",
  dma_info_stall_and_notify="0x0",
  dma_info_atomic_command_status="0x0",
  dma_cmd=
  {
    nr_rows="16",
    nr_cols="10",
    hdr=[{width="7",alignment="-1",col_name="opcode",colhdr="Opcode"},
         {width="3",alignment="-1",col_name="tag",colhdr="Tag"},
         {width="3",alignment="-1",col_name="tid",colhdr="TId"},
         {width="3",alignment="-1",col_name="rid",colhdr="RId"},
         {width="18",alignment="-1",col_name="ea",colhdr="EA"},
         {width="7",alignment="-1",col_name="lsa",colhdr="LSA"},
         {width="7",alignment="-1",col_name="size",colhdr="Size"},
         {width="7",alignment="-1",col_name="lstaddr",colhdr="LstAddr"},
         {width="7",alignment="-1",col_name="lstsize",colhdr="LstSize"},
         {width="1",alignment="-1",col_name="error_p",colhdr="E"}],
    body=[cmd={opcode="getl",tag="0",tid="0",rid="0",
               ea="0xd00000000029f000",lsa="0x00000",size="0x00000",
               lstaddr="0x00e70",lstsize="0x00008",error_p=""},
          cmd={opcode="putllc",tag="0",tid="0",rid="0",
               ea="0xd000000000250080",lsa="0x00080",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="get",tag="5",tid="0",rid="0",
               ea="0x00000000f7f90000",lsa="0x01a00",size="0x00080",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="mfcsync",tag="0",tid="0",rid="0",ea="",
               lsa="0x00300",size="0x00880",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="get",tag="0",tid="0",rid="0",
               ea="0xd000000000250900",lsa="0x00e00",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0", 
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""},
          cmd={opcode="0",tag="0",tid="0",rid="0",
               ea="",lsa="0x00000",size="0x00000",
               lstaddr="",lstsize="",error_p=""}]
  }
}


This corresponds to the information shown by "info spu dma" in the CLI:

(gdb) info spu dma
Tag-Group Status  0x00000000
Tag-Group Mask    0x00000020 (no query pending)
Stall-and-Notify  0x00000000
Atomic Cmd Status 0x00000000

Opcode  Tag TId RId EA                 LSA     Size    LstAddr LstSize E
getl    0   0   0   0xd00000000029f000 0x00000 0x00000 0x00e70 0x00008
putllc  0   0   0   0xd000000000250080 0x00080 0x00000
get     5   0   0   0x00000000f7f90000 0x01a00 0x00080
mfcsync 0   0   0                      0x00300 0x00880
get     0   0   0   0xd000000000250900 0x00e00 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000
0       0   0   0                      0x00000 0x00000

The IDE parses the above MI output to display a screen that shows
this information, formatted appropriately.

> I have a half-finished sketch of a register groups interface that lets
> GDB present arbitrary control structures from the target as
> "registers" to the front end.  There will be a generic MI command to
> get groups of these things and the individual members will show up
> through -var-list-children as varobjs.  But that may not be suitable.
> 
> Another option would be something like this, if the output of the MI
> commands is general enough.  Excuse my MI syntax if it's completely
> wrong, please.
> 
> -> -arch-info-list
> <- ^done,infos=["spu dma", "spu signals"]
> -> -arch-info "spu dma"
> <- ^done,[whatever]

It would appear that this makes sense only if the IDE is capable of
generically displaying any such -arch-info output.  This is a bit
different from our current -spu-info implementation where the IDE
has its own understanding of each of the various commands, and how
to best display the result of each of them.

I'll get in touch with our IDE group and find out if they feel a
"generic" info display facility would be feasible / useful ...

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


  reply	other threads:[~2007-06-04 22:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-02 19:34 Ulrich Weigand
2007-06-02 20:38 ` Eli Zaretskii
2007-06-03 13:29   ` Ulrich Weigand
2007-06-03 16:45     ` Eli Zaretskii
2007-06-04 20:00 ` Daniel Jacobowitz
2007-06-04 20:13   ` Ulrich Weigand
2007-06-04 20:22     ` Daniel Jacobowitz
2007-06-04 22:59       ` Ulrich Weigand [this message]
2007-06-05 11:12         ` Daniel Jacobowitz
2007-06-14 20:05           ` Ulrich Weigand
2007-06-21  2:23             ` Ricardo Marin Matinata
2007-06-21 22:22               ` Nick Roberts
2007-06-22 20:53               ` Jim Blandy
2007-06-20  0:28 Nick Roberts

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=200706042259.l54MxK0A025170@d12av02.megacenter.de.ibm.com \
    --to=uweigand@de.ibm.com \
    --cc=drow@false.org \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    /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