On 6/29/2005 2:06 PM, Luke Tierney wrote: > On Wed, 29 Jun 2005, Duncan Murdoch wrote: > >> I'm trying to track down a bug in some experimental code, where an >> object's attribute is getting messed up. This means I'd like to examine >> R objects while within gdb. >> >> One of the things I'd like to do is to examine the names of all the >> attributes. This is exactly what an example in the R Extensions manual >> section 4.11.2 "Inspecting R objects when debugging" does, but the code >> there doesn't work, presumably because the R internals have changed >> since it was written. >> >> Specifically, I get >> >> (gdb) p $a->u.listsxp.tagval->u.symsxp.pname->u.vecsxp.type.c >> Error: There is no member named vecsxp. >> > > Something like this I think (untested): > > p ((VECSEXP)$a->u.listsxp.tagval->u.symsxp.pname)->vecsxp.type.c
That gets the typecast right, but now I have the problem that currently vecsxp doesn't have a type member: (gdb) p ((VECSEXP)$a->u.listsxp.tagval->u.symsxp.pname)->vecsxp.type.c Error: There is no member named type. (gdb) p ((VECSEXP)$a->u.listsxp.tagval->u.symsxp.pname)->vecsxp $1 = {length = 5, truelength = 6957219} I guess I need to write a function that uses the macros to extract the data (since gdb doesn't see the macros). Or do we already have one? Duncan Murdoch ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel