2017-08-06 31 views
0

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

#!/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 
+0

你内存不足吗?检查交换分区。这看起来像内存分配问题。 – py9

回答

0

这似乎是一个prog问题,而不是在bash脚本。你必须调试程序并找出它崩溃的原因。

作为一个起点,您应该了解程序崩溃的参数。您可以在运行prog之前通过从bash脚本中打印参数来实现此目的。在撞车前打印的最后一个参数将是感兴趣的。希望没有任何随机元素,程序总是会随这些参数而崩溃。

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