对于C++程序,如果遇到如下崩溃的栈信息,一般都是栈被破坏了。需要检查下崩溃处的代码片段附近,是否存在堆栈被越界写的情况。
实际项目中,由于定义了如下栈上的数组,后续代码memcpy写越界,造成崩溃。且这种崩溃为非必现。
char szData[1024] = { 0 };
(gdb) bt
#0 0x00007f6210a9e64f in pthread_getspecific () from /lib64/libpthread.so.0
#1 0x00007f62107a0039 in Poco::SignalHandler::jumpBufferVec() () from /app_home/lib/Poco/libPocoFoundation.so.62
#2 0x00007f62107a00a8 in Poco::SignalHandler::handleSignal(int) () from /app_home/lib/Poco/libPocoFoundation.so.62
#3 <signal handler called>
#4 0x00007f620f37d643 in __memmove_avx_unaligned_erms () from /lib64/libc.so.6
#5 0x00007f620e93b9f4 in XXXXXXXXXXXXX::Mediaserver::MediaSession::SendProStremInfo (this=0x2007da0, pFifoSendThread=...)
at /XXXXXXXXXXX/src/MediaServer/MediaSession.cpp:2189
#6 0x2b9683b309dfa9c4 in ?? ()
#7 0x947d8c9efdc57c38 in ?? ()
#8 0xbd7b59c8d7451a84 in ?? ()
#9 0xde079bf0ad486d9e in ?? ()
#10 0xd476b67379d68e9e in ?? ()
#11 0xbfb9d4b08a28b719 in ?? ()
#12 0x4c0a5f92686ec2c7 in ?? ()
#13 0x69f89904a04f542d in ?? ()
#14 0x674efc0271252d96 in ?? ()


767

被折叠的 条评论
为什么被折叠?



