public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Chris Friesen <gdb001@speakeasy.net>
To: gdb@sources.redhat.com
Subject: Re: GDB/XMI (XML Machine Interface)
Date: Wed, 11 Aug 2004 00:51:00 -0000	[thread overview]
Message-ID: <8A54B4DA-EB30-11D8-9650-000A95DA1012@speakeasy.net> (raw)
In-Reply-To: <5956F1E2-EB0D-11D8-9949-000A9569836A@apple.com>


Hi Bob,

  	I'm not defending MI, I just haven't had any problems parsing MI  
output, mi0 or mi1, using Apple's branch of gdb. The structure is well  
defined and if you parse the payload into arrays and dictionaries then  
it's not so bad to deal with.

	The versioning problem you mention is solved by having a specification  
for backward compatibility and not by any inherent virtue of XML. (We  
could just add a version field to MI output...FYI: Apple's branch has  
an MI verify command to test for support of MI commands.) So I'm not  
sure what XML delivers for MI other than people can use a 'standard'  
parser. I guess the DTD's are a nice place for the spec of the MI  
commands and there are tools to help validate against them, so that's a  
win. (The code is *not* the spec people...)

> From: Bob Rossi <bob@brasko.net>
> Date: August 10, 2004 1:14:40 PM PDT
> To: gdb@sources.redhat.com
> Subject: GDB/XMI (XML Machine Interface)
>
> Hi,
>
> As most of you know, I have been writing a front end to GDB called  
> CGDB.
> However, for a while now, I have been a little disappointed with the MI
> interface. In my RFC I have described the problems I have with MI and I

>
>   1.2 The Objective
>
>   The objective of GDB/XMI is to create a reliable protocol between
>   GDB and the front end controlling GDB.

Is MI not reliable? Reliable is good.
>
> 2. The GDB/XMI Overview
>
>   2.1 Passing Information between GDB and the front end
>
>   All information passed between GDB and the front end is done in
>   the form of an XML document. Each XMI command, generates an XML
>   document, and is sent from GDB to the front end.
>

This would not be good for MI commands *to* gdb as developers of MI  
commands often enter them by hand.

>
>   2.5 Version Management
>
>   This model keeps front ends working with both old and new GDB's,  
> which
>   is unfortunately a task that most front ends have to and should deal  
> with.
>

I don't see a new IDE supporting an old GDB, it might with minimum  
version numbers for the MI commands, but the new IDE isn't going to  
support a deprecated command if they choose to use the new MI command.  
The IDE is going to choose features over using an old version of GDB.  
Backward compatibility of MI commands will make it so my old IDE can  
use a new GDB, which is more important.

>   3.3.2 GDB/MI Output
>
>   (gdb)
>   -stack-list-frames
>    
> ^done,stack=[frame={level="0",addr="0x080483ef",func="short_func",file= 
> "test.c",line="13"},frame={level="1",addr="0x080484f5",func="main",file 
> ="test.c",line="54"}]
>
>   ^done,stack=[frame={level="0",addr="0x080483ef",func="short_func",
>   file="test.c",line="13"},frame={level="1",addr="0x080484f5",
>   func="main",file="test.c",line="54"}]
>
>   3.3.3 The GDB/XMI Output
>
>   <?xml version="1.0"?>
>   <stack>
>     <frame>
>       <level>0</level>
>       <addr>0x080483ef</addr>
>       <func>short_func</func>
>       <file>test.c</file>
>       <line>13</line>
>     </frame>
>     <frame>
>       <level>1</level>
>       <addr>0x080484f5</addr>
>       <func>main</func>
>       <file>test.c</file>
>       <line>54</line>
>     </frame>
>   </stack>
>

<snip>

Hate to say this but the MI output is more human readable for 'key' and  
'value' (good for debugging) while the the XML is not friendly to my  
scanning... the MI reads more like code. If you look at it, the MI has  
the same tree structure as the XML, just written in a less pedantic  
form. An MI to XML formatter/converter wouldn't be that hard.

Overall MI suffers most from not having a specification for the various  
commands, as well as not documenting which platforms the commands are  
supported on. I don't see a big benefit from using XML. It could be  
tested by writing a simple MI to XML converter without having to make a  
lot of changes to gdb.

Cheers,
-ChrisF

       reply	other threads:[~2004-08-11  0:51 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5956F1E2-EB0D-11D8-9949-000A9569836A@apple.com>
2004-08-11  0:51 ` Chris Friesen [this message]
     [not found]   ` <gdb001@speakeasy.net>
2004-08-11  6:28     ` Felix Lee
2004-08-11  8:25       ` Chris Friesen
2004-08-11 22:43     ` Felix Lee
2004-08-12  4:54       ` OT: " Chris Friesen
2004-08-20 10:34     ` Felix Lee
2004-08-20 12:54       ` Bob Rossi
2004-08-20 18:34         ` Daniel Jacobowitz
2004-08-20 18:49           ` Bob Rossi
2004-08-20 18:52             ` Daniel Jacobowitz
2004-08-20 19:25               ` Bob Rossi
2004-08-20 19:42                 ` Daniel Jacobowitz
2004-08-20 19:59                   ` Bob Rossi
2004-08-21 10:25                     ` Eli Zaretskii
2004-08-21 12:34                       ` Bob Rossi
2004-08-21 13:34                         ` Eli Zaretskii
     [not found]         ` <bob@brasko.net>
2004-08-20 18:20           ` Felix Lee
2004-08-20 21:34           ` Felix Lee
2004-08-21 19:21           ` Felix Lee
2004-08-21 20:21             ` Bob Rossi
2004-08-21 19:28           ` Felix Lee
2004-08-21 20:16             ` Bob Rossi
2004-08-21 21:28           ` Felix Lee
2004-08-21 22:37           ` Felix Lee
2004-10-03 18:36           ` GDB/MI snapshots between major release's Felix Lee
2004-10-03 18:40             ` Bob Rossi
2004-10-03 18:42               ` Daniel Jacobowitz
2004-10-03 19:35                 ` Bob Rossi
2004-10-03 19:39           ` Felix Lee
2004-10-03 20:19             ` Bob Rossi
2004-10-04  5:00           ` Felix Lee
2004-10-04 15:34           ` Felix Lee
2004-10-04 15:58             ` Bob Rossi
2004-10-04 16:48           ` Felix Lee
2004-10-04 17:37             ` Bob Rossi
2004-10-04 18:31           ` Felix Lee
2004-10-04 19:00             ` Bob Rossi
2004-10-04 21:07           ` Felix Lee
2004-10-03 17:01             ` Bob Rossi
2004-10-04  5:04               ` Eli Zaretskii
2004-10-04 14:59                 ` Bob Rossi
2004-10-04 15:49                   ` Mark Kettenis
2004-10-04 16:04                     ` Bob Rossi
2004-10-05 10:57                       ` Eli Zaretskii
2004-10-05 14:18                         ` Daniel Jacobowitz
2004-10-06  1:40                           ` Bob Rossi
2004-10-06 11:14                           ` Eli Zaretskii
2004-10-06 11:39                             ` Bob Rossi
2004-10-06 13:19                               ` Eli Zaretskii
2004-10-06 16:55                                 ` Bob Rossi
2004-10-06 17:00                                   ` Paul Koning
2004-10-06 17:02                                     ` Bob Rossi
2004-10-04 21:27             ` Daniel Jacobowitz
2004-10-04 22:14             ` Bob Rossi
2004-10-05  9:03               ` Fabian Cenedese
2004-10-05  9:18                 ` Eli Zaretskii
2004-10-05 13:37                   ` Bob Rossi
2004-10-05 18:53           ` probing GDB for MI versions Felix Lee
2004-10-06 17:14           ` GDB/MI snapshots between major release's Felix Lee
2004-10-06 17:21             ` Daniel Jacobowitz
2004-10-06 18:41           ` Felix Lee
2004-10-06 18:50             ` Bob Rossi
2004-10-06 18:55           ` Bumping MI protocol Felix Lee
2004-10-06 19:43             ` Bob Rossi
2004-10-06 21:04           ` Felix Lee
2004-10-07 18:01           ` probing GDB for MI versions Felix Lee
2004-10-07 19:44             ` Bob Rossi
2004-10-08  8:54               ` Fabian Cenedese
2004-10-19 20:13           ` Felix Lee
2004-10-19 20:23             ` Eli Zaretskii
2004-10-19 21:27             ` Bob Rossi
2004-11-09  2:27             ` Bob Rossi
2005-10-10 20:46 Laziness David Lecomber
2005-10-10 20:50 ` Laziness Daniel Jacobowitz
2005-10-10 21:05   ` Laziness David Lecomber
2005-10-10 21:09     ` Laziness Daniel Jacobowitz
2005-10-10 21:24       ` Laziness David Lecomber
2005-10-10 21:27         ` Laziness Daniel Jacobowitz
2005-10-10 23:53           ` Laziness Paul Hilfinger
     [not found] <200508292030.NAA29909@hpsje.cup.hp.com>
     [not found] ` <1125360166.9350.69.camel@aretha.corp.specifix.com>
2005-08-30  1:13   ` HP gdb/wdb sources available Daniel Jacobowitz
2005-08-30  2:13     ` Paul Hilfinger
  -- strict thread matches above, loose matches on Subject: below --
2004-10-26 14:49 backtrace changes current source location Felix Lee
2004-10-28 13:49 ` Daniel Jacobowitz
2004-10-06  1:03 Bumping MI protocol Bob Rossi
2004-10-06  5:08 ` Nathan J. Williams
2004-10-06 11:27   ` Bob Rossi
2004-10-06 12:30     ` Eli Zaretskii
2004-10-06 16:38       ` Bob Rossi
2004-10-06 16:45         ` Nathan J. Williams
2004-10-06 19:53           ` Bob Rossi
     [not found]       ` <eliz@gnu.org>
2004-10-06 16:57         ` Felix Lee
2004-10-06 17:03           ` Bob Rossi
2004-10-04 17:51 gdbserver, sysroot, prelink Felix Lee
2004-10-04 18:12 ` Daniel Jacobowitz
2004-10-03 17:15 probing GDB for MI versions Bob Rossi
2004-10-04  9:00 ` Eli Zaretskii
2004-10-04 13:19   ` Bob Rossi
2004-10-05  9:10     ` Eli Zaretskii
2004-10-05 12:34       ` Bob Rossi
2004-10-06 10:19         ` Eli Zaretskii
2004-10-06 11:47           ` Bob Rossi
2004-10-06 12:13             ` Dave Korn
2004-10-06 16:31               ` 'Bob Rossi'
2004-10-06 16:46                 ` Nathan J. Williams
2004-10-06 16:55                   ` 'Bob Rossi'
2004-10-06 17:04                     ` Nathan J. Williams
2004-10-06 17:15                       ` 'Bob Rossi'
2004-10-06 16:57                 ` Dave Korn
2004-10-06 17:12                   ` 'Bob Rossi'
2004-10-06 17:21                     ` Dave Korn
2004-10-06 17:24                       ` 'Bob Rossi'
2004-10-06 17:31                         ` Daniel Jacobowitz
2004-10-06 17:38                           ` Bob Rossi
2004-10-06 17:41                             ` Dave Korn
2004-10-06 17:55                               ` 'Bob Rossi'
2004-10-06 18:19                                 ` Paul Koning
2004-10-07 10:56                                 ` Dave Korn
2004-10-07 14:15                                   ` 'Bob Rossi'
2004-10-07 14:28                                     ` Dave Korn
2004-10-07 14:37                                       ` 'Bob Rossi'
2004-10-07 14:39                                         ` Dave Korn
2004-10-07 14:50                                           ` 'Bob Rossi'
2004-10-07 15:38                                             ` Dave Korn
2004-10-07 15:49                                               ` 'Bob Rossi'
2004-10-07 16:31                                                 ` Nathan J. Williams
2004-10-07 16:45                                                 ` Alain Magloire
2004-10-07 17:12                                                 ` Dave Korn
     [not found]                                                 ` <200410071614.MAA19648@smtp.ott.qnx.com>
2004-10-08  6:56                                                   ` 'Bob Rossi'
2004-10-08  9:10                                                     ` Eli Zaretskii
2004-10-10 18:13                                                       ` 'Bob Rossi'
2004-10-11 17:46                                                         ` 'Bob Rossi'
2004-10-13 12:14                                                         ` 'Bob Rossi'
2004-10-13 12:48                                                           ` Eli Zaretskii
2004-10-13 14:05                                                             ` 'Bob Rossi'
2004-10-14  7:10                                                               ` Eli Zaretskii
2004-10-14 19:34                                                                 ` 'Bob Rossi'
2004-10-14 21:23                                                                   ` Andrew Cagney
2004-10-15 15:40                                                                     ` 'Bob Rossi'
2004-10-15 13:02                                                                   ` Eli Zaretskii
2004-10-15 13:28                                                                     ` Michael Chastain
2004-10-15 13:42                                                                       ` Eli Zaretskii
2004-10-15 18:04                                                                     ` 'Bob Rossi'
2004-10-16 15:46                                                                       ` Eli Zaretskii
2004-10-16 21:56                                                                         ` 'Bob Rossi'
2004-10-17 18:59                                                                           ` Eli Zaretskii
2004-10-19 13:51                                                                             ` 'Bob Rossi'
2004-10-19 14:18                                                                               ` Daniel Jacobowitz
2004-10-19 19:28                                                                                 ` Bob Rossi
2004-10-19 20:17                                                                                 ` Eli Zaretskii
2004-10-06 18:43                               ` Andrew Cagney
2004-10-06 18:54                                 ` 'Bob Rossi'
2004-10-06 19:19                                   ` Andrew Cagney
2004-10-06 19:25                                     ` 'Bob Rossi'
2004-10-06 17:36                         ` Dave Korn
2004-10-06 17:51                         ` Paul Koning
2004-10-06 18:09                           ` Bob Rossi
2004-10-06 17:05                 ` Alain Magloire
2004-10-06 19:16 ` Andrew Cagney
2004-10-06 19:20   ` Bob Rossi
2004-10-06 20:10     ` Alain Magloire
2004-10-06 20:15       ` Bob Rossi
2004-10-06 20:13     ` Andrew Cagney
2004-10-08 10:28       ` Eli Zaretskii
2004-10-08 18:48         ` Daniel Jacobowitz
     [not found] <message on Sat, 21 Aug 2004 14:28:52 PDT from Felix Lee <felix.1@canids.net>
2004-08-22  2:55 ` GDB/XMI (XML Machine Interface) Felix Lee
2004-08-23  0:33   ` Bob Rossi
2004-08-23  9:27   ` Fabian Cenedese
     [not found] <1092177534.30930.ezmlm@sources.redhat.com>
2004-08-10 23:02 ` Jim Ingham
2004-08-10 20:14 Bob Rossi
2004-08-10 22:38 ` Kip Macy
2004-08-11  0:17 ` Michael Chastain
2004-08-11  7:36 ` Fabian Cenedese
2004-08-11  8:51 ` Nick NoSpam
2004-08-11 18:05 ` Bob Rossi
2004-08-11 19:26   ` Alain Magloire
2004-08-11 22:35     ` Jason Molenda
2004-08-12 13:03       ` Nick NoSpam
2004-08-19 23:49 ` Bob Rossi
2004-08-20  7:09   ` Chris Friesen
2004-08-20 12:47     ` Bob Rossi
2004-07-29  5:10 breaking at for-loop test line Allen Hopkins
2004-07-29 16:29 ` Daniel Jacobowitz
2004-07-29 18:58   ` Andre Ancelin
2004-07-30 11:32   ` Eli Zaretskii
2004-08-03 19:21     ` Daniel Jacobowitz
2004-08-03 20:09       ` Andrew Cagney
2004-08-03 20:21         ` Daniel Jacobowitz
2004-07-25  1:18 [proposal/testsuite] require build == host Michael Chastain
2004-07-25  1:52 ` Felix Lee
2004-07-25  2:43   ` Daniel Jacobowitz
     [not found]     ` <drow@false.org>
2004-07-25 22:36       ` Felix Lee
2004-07-26 18:07         ` Michael Chastain
2004-07-27  4:41           ` Felix Lee
2004-07-29 22:21       ` breaking at for-loop test line Felix Lee
2004-07-30  8:23         ` Baurjan Ismagulov
     [not found]           ` <ibr@ata.cs.hun.edu.tr>
2004-07-30 10:46             ` Felix Lee
2004-08-03 18:53               ` Daniel Jacobowitz
2004-08-20 19:06       ` GDB/XMI (XML Machine Interface) Felix Lee
2004-08-20 19:09         ` Daniel Jacobowitz
2004-08-20 19:20       ` Felix Lee
2004-08-21 12:37         ` Bob Rossi
2004-10-04 19:05       ` gdbserver, sysroot, prelink Felix Lee
2004-10-04 19:24         ` Daniel Jacobowitz
2004-10-05 13:03           ` Andrew Cagney
2004-10-05 13:52             ` Daniel Jacobowitz
2004-10-05 13:53       ` Felix Lee
2004-10-06 17:58       ` GDB/MI snapshots between major release's Felix Lee
2004-10-29  8:32       ` backtrace changes current source location Felix Lee
2004-07-25  7:59 ` [proposal/testsuite] require build == host Eli Zaretskii
2004-07-27  0:45 ` Andrew Cagney
2004-07-27  2:31   ` Michael Chastain
2004-07-27  4:16     ` Eli Zaretskii
2004-07-27 15:32     ` Andrew Cagney
2004-07-27 15:50       ` Christopher Faylor
2004-07-27 21:17       ` Michael Chastain

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=8A54B4DA-EB30-11D8-9650-000A95DA1012@speakeasy.net \
    --to=gdb001@speakeasy.net \
    --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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).