corrupted size vs. prev_size

程序运行完成后,突然出现这个情况,怎么回事啊?

End

*** Error in `fsiFoam': corrupted size vs. prev_size: 0x000000000119dcf0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x80f87)[0x7fc408b5cf87]
/lib64/libc.so.6(+0x8155e)[0x7fc408b5d55e]
/lib64/libc.so.6(+0x39cc0)[0x7fc408b15cc0]
/lib64/libc.so.6(+0x39ce7)[0x7fc408b15ce7]
/lib64/libc.so.6(__libc_start_main+0xfc)[0x7fc408afe50c]

利用 GDB 工具,使用 where 出现以下提示

#0  0x00007ffff2432337 in raise () from /lib64/libc.so.6
#1  0x00007ffff2433a28 in abort () from /lib64/libc.so.6
#2  0x00007ffff2474e87 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff247cf87 in malloc_consolidate () from /lib64/libc.so.6
#4  0x00007ffff247d55e in _int_free () from /lib64/libc.so.6
#5  0x00007ffff2435cc0 in __run_exit_handlers () from /lib64/libc.so.6
#6  0x00007ffff2435ce7 in exit () from /lib64/libc.so.6
#7  0x00007ffff241e50c in __libc_start_main () from /lib64/libc.so.6
#8  0x0000000000402f2f in _start ()

换了库,重新编译,没有这个问题,但是在程序运行结束又出现了

Segmentation fault (core dumped)

利用 gdb 调试,结果是

#0  0x00007ffff1c8c80c in malloc_consolidate () from /lib64/libc.so.6
#1  0x00007ffff1c8d55e in _int_free () from /lib64/libc.so.6
#2  0x00007ffff1c45cc0 in __run_exit_handlers () from /lib64/libc.so.6
#3  0x00007ffff1c45ce7 in exit () from /lib64/libc.so.6
#4  0x00007ffff1c2e50c in __libc_start_main () from /lib64/libc.so.6
#5  0x0000000000402f7f in _start ()