2017-08-06 35 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的相關源代碼。