I wrote a some code as a package. When I try to issue a R CMD install mypkg it gives errors such as
* installing to library ‘/Users/USERNAME/R/x86_64-apple-darwin11.0.0-library/2.14’
* installing *source* package ‘mypkg’ ...
** libs
*** arch - x86_64
make: Nothing to be done for `all'.
installing to /Users/USERNAME/R/x86_64-apple-darwin11.0.0-library/2.14/mypkg/libs/x86_64
** R
** preparing package for lazy loading
** help
Warning: /Users/USERNAME/temp/mypkg/man/mypkg-package.Rd:31: All text must be in a section
Warning: /Users/USERNAME/temp/mypkg/man/mypkg-package.Rd:32: All text must be in a section
*** installing help indices
** building package indices ...
** testing if installed package can be loaded
R(57533) malloc: *** error for object 0x1110005e0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
sh: line 1: 57533 Abort trap: 6 '/opt/local/lib/R/bin/R' --no-save --slave < /var/folders/2f/kxqs800n6rq09nrm8_t637g40000gr/T//Rtmp6McNDz/filee0b91bc7fa41
ERROR: loading failed
* removing ‘/Users/USERNAME/R/x86_64-apple-darwin11.0.0-library/2.14/mypkg’
To figure this out, I tried to run R CMD with gdb, but to no avail
$ R -d gdb
GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Thu Nov 3 21:59:02 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...
(gdb) start CMD install mypkg
<-gdb intro ->
Breakpoint 1 at 0x100000ef4: file Rmain.c, line 30.
Starting program: /opt/local/lib/R/bin/exec/x86_64/R CMD install mypkg
Breakpoint 1, main (ac=4, av=0x7fff5fbff9a8) at Rmain.c:30
30 R_running_as_main_program = 1;
(gdb) c
Continuing.
ARGUMENT 'CMD' __ignored__
ARGUMENT 'install' __ignored__
ARGUMENT 'mypkg' __ignored__
Reading symbols for shared libraries . done
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-apple-darwin11.0.0/x86_64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
>
Similarly, R -d gdb CMD install mypkg and R CMD install mypkg -d gdb also do not work. My questions are:
- How do I run R CMD install under gdb?
- Is there another way to debug this error other than in gdb?
The error doesn’t happen in INSTALL itself, it happens when loading your package, so you can simply run
As for debugging, another useful tool for memory issues is
valgrind.But note that your package is dirty, so you should consider cleaning it and using
R CMD build mypkg && R CMD INSTALL --no-test-load mypkg_x.y.tar.gzinstead.