在bash循环中移动大量文件时获取munmap_chunk()错误

时间:2017-08-06 20:03:28

标签: bash

我有一个简单的bash循环,如下所示,它在循环中执行某些操作并将结果移动到正确的文件夹中。如果我有少量文件来移动脚本正常运行,但如果我将它用于更大的任务,它会显示我的核心转储。 我不知道为什么?

#!/bin/bash

g=0.3
tau=5.5

for sim in {0..1}
    do
        ./prog ${g} ${tau}
        mkdir ../data/${sim}
        mkdir ../data/${sim}/cfiles/
        mkdir ../data/${sim}/rfiles/
        mv ../data/cfiles/* ../data/${sim}/cfiles/
        mv ../data/rfiles/* ../data/${sim}/rfiles/
    done

echo "Script Done!"
Error in `./prog': munmap_chunk(): invalid pointer: 0x00000000021270f0 
./run.sh: line 12: 14062 Aborted                 (core dumped) ./prog ${g} ${tau}
mv: cannot stat ‘../data/cfiles/*’: No such file or directory
mv: cannot stat ‘../data/rfiles/*’: No such file or directory

1 个答案:

答案 0 :(得分:0)

这似乎是prog而不是bash脚本的问题。你必须调试程序并弄清楚它崩溃的原因。

作为一个起点,你应该找出程序崩溃的参数。您可以通过在运行prog之前打印bash脚本中的参数来完成此操作。在崩溃之前打印的最后一个参数将是感兴趣的。希望没有随机元素,程序将始终与这些参数崩溃。

下一步是在调试器中运行程序,以便找到发生崩溃的行。如果您希望我们提供帮助,您应该发布prog的相关源代码。