Re: [Rd] Viewing R objects in gdb

From: Luke Tierney <>
Date: Wed 29 Jun 2005 - 18:44:42 GMT

On Wed, 29 Jun 2005, Duncan Murdoch wrote:

> 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?

The type fiels it in the sxpinfo part of the header; I think either




will give you that.

It is probably possible to do something like write a file of gdb macros, run the C pre-processor over it to get the expnansions, and load that into gdb. Not that I've tried...


Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:
Iowa City, IA 52242                 WWW:

______________________________________________ mailing list
Received on Thu Jun 30 04:47:25 2005

This archive was generated by hypermail 2.1.8 : Mon 24 Oct 2005 - 22:27:24 GMT