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]

Machine interface


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






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