This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Machine interface
- From: jacques <jacqueslenormand at sympatico dot ca>
- Cc: gdb at sources dot redhat dot com
- Date: Tue, 19 Aug 2003 02:41:12 +0200
- Subject: Machine interface
- References: <20030603220912.GA7922@nevyn.them.org> <200306032230.h53MUlA22339@magilla.sf.frob.com> <20030818193344.GA21937@nevyn.them.org>
Hello, I've been doing some MI interface testing, and am in need of some
grammar clarifications. After running until a breakpoint, I do the
following:
(gdb)
-data-evaluate-expression b
^done,value="{<_Vector_base<int,std::allocator<int> >> =
{<_Vector_alloc_base<int,std::allocator<int>,true>> = {_M_start =
0x804aa50, _M_finish = 0x804aa58, _M_end_of_storage = 0x804aa58}, <No
data fields>}, <No data fields>}"
Which is of the format:
output => result-record => "^" result-class ( "," result )
result-class => "done"
result => variable "=" value
value => tuple
tuple => "{" result "}"
...
Now all is well and fine, however the meat of the output, being the
variable and value nonterminal symbols are unparseable! Indeed, they are
composed of:
variable => string
value => const => c-string (since I can't fanthom not running into a
const value after a while)
In this case, <_Vector_base<....>> is unparseable, and I wouldn't be
able to know how to handle all cases. Furthermore, I don't see the
distinction between c-string and string. I see how the production would
depend on the programming language being being debugged, but it seems
quite important to me.
--Jacques