2015年1月29日木曜日

「Lapackを使用して実行ファイル(a.out)を実行したとき 'glibc detected' エラーがでてきたときの対処」



*** glibc detected *** ./a.out: free(): invalid next size (normal): 0x000000000beeb5b0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x75018)[0x2aaaac0ac018]
/lib64/libc.so.6(cfree+0x6c)[0x2aaaac0b0f6c]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libintlc.so.5(tbk_get_pc_info+0x354)[0x2aaaabce0f84]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libintlc.so.5(+0xa6df)[0x2aaaabce06df]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libintlc.so.5(tbk_trace_stack+0x1b4)[0x2aaaabce19e4]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libintlc.so.5(tbk_string_stack_signal+0xa6)[0x2aaaabce04a6]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libifcore.so.5(tbk_stack_trace+0x1ac)[0x2aaaaad917ac]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libifcore.so.5(for__issue_diagnostic+0x8e2)[0x2aaaaad04e42]
/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64/libifcore.so.5(for__signal_handler+0x120)[0x2aaaaad15560]
/lib64/libpthread.so.0(+0xf5d0)[0x2aaaabe295d0]
./a.out[0x401c23]
./a.out[0x400fac]
/lib64/libc.so.6(__libc_start_main+0xe6)[0x2aaaac055bc6]
./a.out[0x400ea9]
======= Memory map: ========
00400000-00438000 r-xp 00000000 08:04 584030342                        
 /home/***/pro/a.out
00637000-00638000 r--p 00037000 08:04 584030342                        
/home/***/pro/a.out
00638000-00639000 rw-p 00038000 08:04 584030342                        
/home/***/pro/a.out
00639000-0bf04000 rw-p 00000000 00:00 0                                  [heap]
2aaaaaaab000-2aaaaaaca000 r-xp 00000000 08:02 1435333                    /lib64/ld-2.11.1.so

このエラーはプログラムをコンパイルするときに、引数“-CB”を付けると解決(intel fortranの場合)!このエラーはプログラムを実行するときにメモリで生じるエラーが問題だそう。情報元はこのサイト(https://software.intel.com/en-us/forums/topic/268134)。

つまり test.f というプログラムファイル を
>ifort -CB test.f
でコンパイル。

0 件のコメント:

コメントを投稿