From dusa.adrian at gmail.com  Thu Jun 21 13:38:29 2012
From: dusa.adrian at gmail.com (=?UTF-8?B?QWRyaWFuIER1xZ9h?=)
Date: Thu, 21 Jun 2012 14:38:29 +0300
Subject: [Rd] debug R objects at C level
Message-ID: <CAJ=0CtCkj7G5XdNSK5cnOqusrRqeLC3PSMPPjcEbihRro2KYDQ@mail.gmail.com>

Dear R-devel,

I am now at a debugging phase, and would like to inspect the
(individual) values in an arbitrary R vector. It should be simple, but
after hours of reading I am simply unable to find the right
information.

A possible C code is:
?????????????????
# include <R.h>
# include <Rinternals.h>
# include <R_ext/Rdynload.h>

SEXP foo(SEXP x) // where x is a vector passed by an R function
    double *px;
    int i;
    px = REAL(x);

    for (i = 0; i < length(x); i++) {
        printf("%d\n", px[i]);            // not good
    }
}
?????????????????

That doesn't do the trick, because it only prints the pointer itself.
What I'd like to do is to inspect is the actual vector value in the
position i, that the pointer px[i] points to.

I read about PrintVector() in Rinternals.h, but that prints the whole
R vector, while for debugging purposes I need to inspect individual
values, one at at time.

Thanks in advance,
Adrian

-- 
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd.
050025 Bucharest sector 5
Romania
Tel.:+40 21 3126618 \
? ? ? ?+40 21 3120210 / int.101
Fax: +40 21 3158391



[Rd] debug R objects at C level
=?UTF-8?B?QWRyaWFuIER1xZ9h?=