Re: [Rd] memory allocation problem under linux

From: Prof Brian Ripley <>
Date: Mon 13 Jun 2005 - 08:52:45 GMT

You keep on sending similar messages -- this is at least the third. You need to find out where the segfault is occurring using gdb, and you have not told us.

Very likely this results from some previous memory corruption in your compiled code: try valgrind (see `Writing R Extensions') to try to track that down.

Since this fails with malloc, it is not really an R question.

On Mon, 13 Jun 2005, wrote:

> I have some compiled code that works under winXp but not under linux (kernel
> 2.6.10-5). I'm also using R 2.1.0
> After debugging, I've discovered that in this code:
> #define NMAX 256
> long **box;
> ...
> box = (long **)R_alloc(NMAX, sizeof(long *)); //<---HERE THE SIGSEGV
> for (i=0; i<NMAX; i++) box[i] = (long *) R_alloc(NMAX, sizeof(long));
> inside the *first* call to the function R_alloc I have a segmentation fault.
> Changing R_alloc with Calloc and malloc gives the same result.
> However, in the same shared library, I have another function with this code:
> partitions=16;
> ...
> h2=(long **)R_alloc(partitions,sizeof(long *));
> for (i=0;i<partitions;i++)
> h2[i]=(long *)R_alloc(partitions,sizeof(long));
> that works! Naturally, I've tried to change NMAX from 256 to 16, without any
> success.
> I've changed optimization flags from O2 to O and O2, without success.
> Any idea on where the problem *should* reside? (Note that this not happens under
> WinXp!).

The last is probably just good luck.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
Received on Mon Jun 13 18:56:03 2005

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