Valgrind / R无法正常工作:“致命错误:无法创建'R_TempDir'”。 [英] Valgrind/R is not working: "Fatal error: cannot create 'R_TempDir'"

查看:346
本文介绍了Valgrind / R无法正常工作:“致命错误:无法创建'R_TempDir'”。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,我不太了解这些东西,所以我可能会写一个愚蠢的问题,请客气;-)

First of all, I'm not really skilled with these kind of stuff, so I may write stupid question, please be kind ;-)

我有一个调用c ++代码的R代码。不幸的是,我的代码存在问题,可能是内存未映射,我想使用valgrind尝试了解错误的位置。

I have an R code that call a c++ code. Unfortunately, there is a problem with my code, probably memory not mapped, and i would like to use valgrind to try to understand where the error is.

我已经使用了它几年前,但现在似乎不起作用。当我午餐以下命令时

I already use it a couple of years ago, but now it seems to not work. When I lunch the following command

R -d valgrind

我得到此输出

==69495== Memcheck, a memory error detector
==69495== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==69495== Using Valgrind-3.14.0.GIT and LibVEX; rerun with -h for copyright info
==69495== Command: /Library/Frameworks/R.framework/Resources/bin/exec/R
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476D88: bcc_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476E2C: df_bcc_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476A15: df (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476631: nistctr_init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147607B: init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623C9E: arc4_init (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623B59: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476D88: bcc_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476EBC: df_bcc_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476A15: df (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476631: nistctr_init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147607B: init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623C9E: arc4_init (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623B59: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476D88: bcc_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476A6E: df (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476631: nistctr_init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147607B: init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623C9E: arc4_init (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623B59: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476B30: df (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476631: nistctr_init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147607B: init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623C9E: arc4_init (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623B59: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101476CBC: drbg_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x1014766AA: nistctr_init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147607B: init (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623C9E: arc4_init (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623B59: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x10147621E: generate (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623B92: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101472F31: ccaes_vng_ctr_crypt (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476C3F: drbg_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476269: generate (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623B92: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101476C5C: drbg_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476269: generate (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623B92: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101476CBC: drbg_update (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101476269: generate (in /usr/lib/system/libcorecrypto.dylib)
==69495==    by 0x101623B92: arc4random (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x101623F7D: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x101623F86: arc4random_uniform (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163E765: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Use of uninitialised value of size 8
==69495==    at 0x10163E768: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
==69495== Conditional jump or move depends on uninitialised value(s)
==69495==    at 0x10163E8BD: find_temp_path (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x10163EABF: mkdtemp (in /usr/lib/system/libsystem_c.dylib)
==69495==    by 0x1002418CE: R_reInitTempDir (sysutils.c:1662)
==69495==    by 0x1001B29AE: setup_Rmainloop (main.c:841)
==69495==    by 0x1001B3558: Rf_mainloop (main.c:1088)
==69495==    by 0x100000F5A: main (in /Library/Frameworks/R.framework/Resources/bin/exec/R)
==69495==
--69495-- WARNING: unhandled amd64-darwin syscall: unix:475
--69495-- You may be able to write your own handler.
--69495-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--69495-- Nevertheless we consider this a bug.  Please report
--69495-- it at http://valgrind.org/support/bug_reports.html.
Fatal error: cannot create 'R_TempDir'
==69495==
==69495== HEAP SUMMARY:
==69495==     in use at exit: 189,122 bytes in 408 blocks
==69495==   total heap usage: 530 allocs, 122 frees, 504,429 bytes allocated
==69495==
==69495== LEAK SUMMARY:
==69495==    definitely lost: 1,664 bytes in 26 blocks
==69495==    indirectly lost: 0 bytes in 0 blocks
==69495==      possibly lost: 456 bytes in 10 blocks
==69495==    still reachable: 130,172 bytes in 237 blocks
==69495==         suppressed: 56,830 bytes in 135 blocks
==69495== Rerun with --leak-check=full to see details of leaked memory
==69495==
==69495== For counts of detected and suppressed errors, rerun with: -v
==69495== Use --track-origins=yes to see where uninitialised values come from
==69495== ERROR SUMMARY: 30 errors from 12 contexts (suppressed: 1 from 1)

然后不加载R。我不知道该怎么解决。
我知道错误致命错误:无法创建'R_TempDir'可能意味着硬盘驱动器上没有更多空间了,但事实并非如此。

and R is then not loaded. I don't know how to solve it. I know that the error "Fatal error: cannot create 'R_TempDir'" could mean that there is no more space on the hard drive, but this is not the case.

我在使用High Sierra和R 3.5.0的Macbook Pro上

I'm on macbook pro, with High Sierra, and R 3.5.0

推荐答案

Valgrind会生成错误消息

Valgrind produces an error message telling that the unix:475 syscall is not handled.

在这种情况下,它将向来宾应用程序报告系统调用失败,即使用errno ENOSYS的

In such a case, it reports to the guest application that the syscall failed, with errno ENOSYS.

darwin上的Syscall 475是mkdirat syscall。我想当此系统调用失败时,
R然后报告致命错误,即它无法创建R_Tempdir。

Syscall 475 on darwin is the mkdirat syscall. I guess that when this syscall fails, R then reports the fatal error that it cannot create R_Tempdir.

如错误消息中所示,您应该提交一个valgrind bugzilla的错误报告。

As indicated in the error message, you should file a bug report on valgrind bugzilla.

您还可以尝试解决此问题:可能是valgrind文件
中的一个小变化m_syswrap / priv_syswrap-darwin.h ,使类似于
行在上面几行readlink。

You could also try to fix this : it might be a trivial change in the valgrind file m_syswrap/priv_syswrap-darwin.h, to make something similar to e.g. the line readlinkat a few lines above.

这篇关于Valgrind / R无法正常工作:“致命错误:无法创建'R_TempDir'”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆