关于linux平台调试的问题

yfjok22 2016-10-12 09:08:55
各位大侠好

最近在ubuntu上调试一个程序,在run的过程中出现以下报错

*** Error in `MappingFoam': double free or corruption (!prev): 0x0000000002930410 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7f1230939725]
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7f1230941f4a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f1230945abc]
MappingFoam(_ZN4Foam14GeometricFieldINS_6VectorIdEENS_13fvsPatchFieldENS_11surfaceMeshEED1Ev+0xb6)[0x41e586]
MappingFoam[0x4163dc]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f12308e2830]
MappingFoam[0x416799]
======= Memory map: ========
00400000-00453000 r-xp 00000000 08:01 8159818 /home/yu/OpenFOAM/yu-4.0/platforms/linux64GccDPInt32Opt/bin/MappingFoam
00652000-00654000 r--p 00052000 08:01 8159818 /home/yu/OpenFOAM/yu-4.0/platforms/linux64GccDPInt32Opt/bin/MappingFoam
00654000-00655000 rw-p 00054000 08:01 8159818 /home/yu/OpenFOAM/yu-4.0/platforms/linux64GccDPInt32Opt/bin/MappingFoam
0239b000-02b5d000 rw-p 00000000 00:00 0 [heap]
7f1224000000-7f1224021000 rw-p 00000000 00:00 0
7f1224021000-7f1228000000 ---p 00000000 00:00 0
7f122a6b1000-7f122a91b000 rw-p 00000000 00:00 0
7f122a9ba000-7f122af0c000 rw-p 00000000 00:00 0
7f122af0c000-7f122af17000 r-xp 00000000 08:01 8786013 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f122af17000-7f122b116000 --...


之前没有碰到过这类问题,想来请教一下各位大侠
shell出现这样的报错,一般会是哪里的问题,针对这种问题一般该用什么方法调试
多谢
...全文
197 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
HymanLiuTS 2016-10-13
  • 打赏
  • 举报
回复
double free 明显是动态创建的内存释放了两次,检查下你的代码mallloc的内存是不是被free了两次,是在用gdb单步调试吧
fefe82 2016-10-12
  • 打赏
  • 举报
回复
引用 2 楼 yfjok22 的回复:
@fefe82 [quote=引用 1 楼 fefe82 的回复:]
引用
*** Error in `MappingFoam': double free or corruption (!prev): 0x0000000002930410 ***
试试 valgrind
valgrind,这个应该是检测内存泄漏的工具吧,这么说目前出现的问题很有可能是内存泄漏引起的了 那么大侠你认为根据已有信息,引起内存泄漏的原因可能是什么呢 [/quote] 1. valgrind 不只是用来检测内存泄露的。它的 memcheck 工具中内存泄露检测都只是其中一部分功能。 2. 你的错误也不是因为泄露,泄露是不会崩掉的。(除非把所有可用的内存用光了。这时很有可能直接被系统杀掉,不留任何痕迹。) 3. 原因:程序写错了。应该是读/写(主要应该是写)了不应该读/写的内存。更具体的:不知道。
yfjok22 2016-10-12
  • 打赏
  • 举报
回复
@fefe82
引用 1 楼 fefe82 的回复:
引用
*** Error in `MappingFoam': double free or corruption (!prev): 0x0000000002930410 ***
试试 valgrind
valgrind,这个应该是检测内存泄漏的工具吧,这么说目前出现的问题很有可能是内存泄漏引起的了 那么大侠你认为根据已有信息,引起内存泄漏的原因可能是什么呢
fefe82 2016-10-12
  • 打赏
  • 举报
回复
引用
*** Error in `MappingFoam': double free or corruption (!prev): 0x0000000002930410 ***
试试 valgrind

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧