一次new崩溃的笔记

265 阅读1分钟

(gdb) bt
#0  0x00007f38c8ca6989 in raise () from /lib64/libc.so.6
#1  0x00007f38c8ca8098 in abort () from /lib64/libc.so.6
#2  0x00007f38c8ce7197 in __libc_message () from /lib64/libc.so.6
#3  0x00007f38c8ceff2c in _int_malloc () from /lib64/libc.so.6
#4  0x00007f38c8cf14ec in malloc () from /lib64/libc.so.6
#5  0x00007f38cb81c18d in operator new(unsigned long) () from /lib64/libstdc++.so.6
#6  0x00000000005d1dda in xx::xxx (this=0x7f381c004468, type=0, param=..., jsonParams="", tapeKey="")
at MediaRW.cpp:154
#7  0x0000000000eee680 in aaa::aaa (this=0x7f381c0042e0, blkSz=, 
encrypt=@0x7f387decae94: 3, xxx=..., key="2ACF4754752067884E7FD460E60587BF") at xxx.cpp:44

从44行到154行,看了代码实在不理解是怎么跳过去的。

最后可能原因:有一个lib代码(涉及到头文件,被其他地方引用很多次)更改了,没有重新编译这个lib

解决方法:git清理工程,重新编译。

附其它说明:

出现问题的编译用的是gcc O0,重新编译用的是gcc O3