3
我写了一个外部C函数,由R .C()
函数调用。为了检查没有发生内存泄漏,我使用来自Ubuntu的valgrind
进行下一次呼叫。Valgrind显示内存泄漏,现在是什么? R:C()扩展
R --debugger=valgrind --vanilla < Desktop/eraseme.R
我没有得到任何错误。但是我收到通知说我有内存泄漏。
==16347== HEAP SUMMARY:
==16347== in use at exit: 30,440,904 bytes in 13,097 blocks
==16347== total heap usage: 29,644 allocs, 16,549 frees, 134,692,871 bytes allocated
==16347==
==16347== LEAK SUMMARY:
==16347== definitely lost: 120 bytes in 2 blocks
==16347== indirectly lost: 480 bytes in 20 blocks
==16347== possibly lost: 0 bytes in 0 blocks
==16347== still reachable: 30,440,304 bytes in 13,075 blocks
==16347== suppressed: 0 bytes in 0 blocks
==16347== Rerun with --leak-check=full to see details of leaked memory
但是,我不知道如何找到泄漏来自哪里。输出说我应该使用选项--leak-check=full
运行它,但该选项不可用。
我怎么找到泄漏来自哪里?考虑到我正在运行R脚本,我必须拨打哪个电话给Valgrind
?
谢谢你的时间。
编辑:当我说该选项不可用时,我的意思是我只有这个选项,当我寻找他们。
--arch --help --min-vsize --no-restore-history --silent
--args --interactive --no-environ --no-save --slave
--debugger-args --max-nsize --no-init-file --no-site-file --vanilla
--encoding --max-ppsize --no-readline --quiet --verbose
--file --max-vsize --no-restore --restore --version
--gui --min-nsize --no-restore-data --save
编辑:所以确实-r显示即使C()
功能是正确的,内存泄漏。
'Valgrind显示内存泄漏,现在是什么?':你应该必须解决这个问题。 – haccks
“但该选项不可用”---这是什么意思?当你尝试使用它会发生什么? –
@haccks:确实,但他(s)他问如何确定错误是什么,因为缺乏Valgrind输出。 –