gpt4 book ai didi

r - 如何调试/报告 "caught access violation - continue with care"

转载 作者:行者123 更新时间:2023-12-02 04:04:06 24 4
gpt4 key购买 nike

收到了可怕的消息(它是我对蓝屏死机的替代品=)。堆栈跟踪中倒数第二个项目是 do.call(...) 调用,它会自动打印。堆栈的顶部似乎被切断了,因为我能看到的只是看起来像数据的东西:

 ...1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L,     1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L,     1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L, 1018L)))
2: do.call(functionToTest, c(thisTestCaseParameters, fixedParameterValues))

回溯比 do.call 调用没有给我更多信息

所以肯定是 functionToTest中的那个东西吐了。我怎么知道那在哪里?有没有办法更深入地查看堆栈的顶部? functionToTest是一个调用其他函数的函数等等。我试图隔离这个问题,以便我可以报告它,但我不知道如何。

最佳答案

在我的 Windows 2008 R2 64 位机器上炸内存模块之前,我收到了这个错误。我正在使用 rgeos 执行内存密集型任务包裹;内存密集型,因为此包在它所连接的 GEOS C 库中存在内存泄漏。尽管尝试修复泄漏,但它仍然存在。

我猜我收到此错误是因为内存模块出现故障和此内存泄漏导致的大量内存消耗。

我应该注意到内存模块现在已被移除,我对这个仍然存在内存泄漏的包进行了相同的分析,并且我从未收到过错误。

请考虑这是硬件问题的可能性,并且您的代码以某种方式刺激了它。这方面的一个关键迹象是它有时会起作用……但不一定,因为根据我的经验,内存可能是有害的。

您可以采取以下步骤来排除/排除这种可能性:

  • 使用资源监视器或其他等效软件运行违规程序并观察内存使用情况。 R 进程是否异常高?
  • 使用 options(error=recover)并在您的代码中添加一些迭代器,以标记可能正在运行的循环的进度。它每次都在同一点崩溃,还是不同?如果对于相同的条件它不同,这表明硬件错误的随机性。
  • 如果这些步骤表明某些事情是随机的,那么请采取措施检查您的内存健康状况。 StackExchange SuperUser 上有很多关于如何执行此操作的讨论。 .
  • 关于r - 如何调试/报告 "caught access violation - continue with care",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607122/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com