Re: [Rd] Viewing R objects in gdb

From: Duncan Murdoch <>
Date: Wed 29 Jun 2005 - 18:30:12 GMT

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 mailing list Received on Thu Jun 30 04:32:59 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:09 GMT