=================================================================== RCS file: /home/cvs/OpenXM/src/R/r-packages/note.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM/src/R/r-packages/note.txt 2015/03/24 07:49:06 1.3 +++ OpenXM/src/R/r-packages/note.txt 2015/04/02 00:11:32 1.4 @@ -1,4 +1,4 @@ -$OpenXM: OpenXM/src/R/r-packages/note.txt,v 1.2 2013/02/09 02:58:14 takayama Exp $ +$OpenXM: OpenXM/src/R/r-packages/note.txt,v 1.3 2015/03/24 07:49:06 takayama Exp $ See also OpenXM/src/hgm/note.txt @@ -54,3 +54,26 @@ export(hgm.z.mleDemo) export(hgm.ssFB) +* Check the memory leak by valgrind and by AddressSanitizer. 2015.04.01 +** Valgrind +apt-get install valgrind + +cat >>~/.valgrindrc +--leak-check=full +--track-origins=yes +ctrl-D + +R CMD check hgm --use-valgrind +more hgm.Rcheck/hgm-Ex.Rout +Example of an error (Note that there is no error message in *.log) +==14813== Conditional jump or move depends on uninitialised value(s) +==14813== at 0xCA20170: mh_t (jack-n.c:1361) + for (i=0; i<=M_m; i++) { + -- snip + serror = myabs((partial_sum[i]-partial_sum[i-1])/partial_sum[i-1]); + } + partial_sum[-1] is accessed! + +As to details, search "valgrind" in R-exts.pdf + +* R CMD check hgm --use-gct