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輸出。 –