看板 Linux 關於我們 聯絡資訊
各位好 我用Mpif90 編譯產生一個執行檔a.out 然後這個a.out再跑一段時間之後就停頓在那邊 也沒有錯誤訊息,就只是閒置那邊 我目前因為無法從任何訊息文件得知job是在哪個地方出問題 我自己猜測是I/O 不同步 或其他原因 有人知道要怎麼去檢測這個job閒置的原因為何? 我有想過 1. 在mpif90 那邊加一些除錯的選項 -debug 之類 2. 用stat 之類的指令去偵測a.out正在等待哪個子程序的回應或檔案的讀取,..等 能否請版友給我一些方向讓我可以順利解決此問題? 萬分感謝~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.30.117 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1461763674.A.82D.html ※ 編輯: peter308 (61.230.30.117), 04/27/2016 21:36:48 ※ 編輯: peter308 (61.230.30.117), 04/27/2016 21:38:09
pillbox1989: 在程式裡面加些print看看是不是卡在某一段吧 04/28 02:35
Bencrie: gdb attach 後中斷它然後 bt 04/28 12:11
sasoric: 直覺是你的程式被blocking message passing函式卡住 04/29 14:07
sasoric: 如同樓上所提 用debugger或加printf去查 04/29 14:08
感謝版友的建議 我找到bug 被trap在一個recursion subroutine中 謝謝! ※ 編輯: peter308 (140.115.30.19), 04/29/2016 16:16:34