前两天写的代码传git后,当时做了基础的功能验证。今天从git上新拉下来编出来的库,替换到我的运行环境中,当我用ctrl+c终止进程时,出现了堆栈溢出错误:
C[System] [227197] [CLogToFile::~CLogToFile:1] [17:41:30,12111940] program log end
*** Error in `./VASSdkDemo': corrupted size vs. prev_size: 0x00000000021d8d00 ***
======= Backtrace: =========
/usr/lib64/libc.so.6(+0x80f17)[0x7fc325af9f17]
/usr/lib64/libc.so.6(+0x814ee)[0x7fc325afa4ee]
/project/code/VASBin/libCommon.so(_ZN2hm11CMemoryPool17DestroyMemoryPoolEv+0x38)[0x7fc327118db8]
/project/code/VASBin/libCommon.so(_ZN2hm11CMemoryPoolD1Ev+0x24)[0x7fc327119284]
/usr/lib64/libc.so.6(__cxa_finalize+0x9a)[0x7fc325ab2f9a]
/project/code/VASBin/libCommon.so(+0x3ea86)[0x7fc3270f4a86]
======= Memory map: ========
00400000-00403000 r-xp 00000000 00:2b 4503599627396858 /project/code/VASBin/VASSdkDemo
00602000-00603000 r--p 00002000 00:2b 4503599627396858 /project/code/VASBin/VASSdkDemo
00603000-00604000 rw-p 00003000 00:2b 4503599627396858 /project/code/VASBin/VASSdkDemo
020ea000-0a35e000 rw-p 00000000 00:00 0 [heap]
7fc314000000-7fc314021000 rw-p 00000000 00:00 0
7fc314021000-7fc318000000 ---p 00000000 00:00 0
7fc318eae000-7fc318faf000 rw-p 00000000 00:00 0
7fc3190b0000-7fc3191b1000 rw-p 00000000 00:00 0
7fc3192b2000-7fc31f312000 rw-p 00000000 00:00 0
7fc31f413000-7fc325877000 rw-p 00000000 00:00 0
7fc325a79000-7fc325c3b000 r-xp 00000000 fd:00 363952 /usr/lib64/libc-2.17.so
7fc325c3b000-7fc325e3b000 ---p 001c2000 fd:00 363952 /usr/lib64/libc-2.17.so
7fc325e3b000-7fc325e3f000 r--p 001c2000 fd:00 363952 /usr/lib64/libc-2.17.so
7fc325e3f000-7fc325e41000 rw-p 001c6000 fd:00 363952 /usr/lib64/libc-2.17.so
7fc325e41000-7fc325e46000 rw-p 00000000 00:00 0
。。。。。。。。。。。。。。。。。
我又替换回本地工程编出来的库,又不会出现这个问题。
百思不得其解,代码都是一样的,为什么用两个库结果不一样呢。
在网上查了很多可能导致溢出的原因,也没进展。(奈何自己半桶水水平)
分析core文件,也试图用valgrind跑(跑出来很多莫名其妙的,看不懂又放弃)
挂的地方是我调用的另外一个库文件。。。没给自己搞死。
中午吃饭还跟同事抱怨这个问题,同事一脸????
回来我突然想起我会不会是编译时链接的依赖库跟我运行环境中的不一样,一试,果然。。。。
哎,单纯记录一下,提醒自己要仔细不要钻牛角尖啊~~~