[Rd] Memory problems with a custom R package

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Sep 12 12:56:58 CEST 2006


On Tue, 12 Sep 2006, Tom McCallum wrote:

> Hi everyone,
> 
> I have been attempting to build a very simple R package interfacing with  
> some very simple C++ code.  Everything I try though results in the  
> function working but on return it produces a memory error.  Here is the  
> output:
> 
> ***********OUTPUT***************************
> 
> > library(MyPackage)
> > hello();
> 
>   *** caught segfault ***
> address 0x3, cause 'memory not mapped'
> 
> **********END OUTPUT*************************
> 
> I have read that some time this occurs because it cannot find the function  
> in the shared library but I have tested this theory with a simple text  

Where did you read that?  It is not true: you get an R error message in 
that case.

> message and this is displayed but again the memory error occurs.
> 
> The C++ code has been reduced to the simplest possible:
> 
> *** helloworld.h
> 
> extern "C" void helloworld(void);
> 
> *** helloworld.cpp
> 
> #include <iostream>
> #include "helloworld.h"
> 
> void helloworld(void) {
> //	This was my test line that was displayed as described above.
> //      std::cout << "My first R Package Test." << std::endl;
> }
> 

But that is the problem: .Call requires a SEXP return value from the entry 
point it calls.


> I also wrote an R wrapper called hello as follows:
> 
> *** helloworld.R
> 
> hello <- function()
> {
>   .Call("helloworld", PACKAGE="MyPackage");
> }
> 
> The namespaces file (NAMESPACE) is as follows:
> 
> useDynLib(MyPackage)
> export(hello)
> 
> I have compared mine against other package sources available that do the  
> same thing and cannot find the key difference.
> 
> Thank you for your help in advance,
> 
> Tom
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-devel mailing list