当交通流量很高时,我们经常会遇到分段故障转储。不知道现在有什么问题吗?
有人能和我们分享经验吗?
(gdb) bt
#0 ... in tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) () from /usr/lib64/libtcmalloc.so
#1 ... in tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) () from /usr/lib64/libtcmalloc.so
#2 ... in tc_delete () from /usr/lib64/libtcmalloc.so
#3 ... in boost::detail::sp_counted_impl_p<OutputObject>::dispose() () at /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/bits/unique_ptr.h:67谢谢,
发布于 2015-12-24 10:19:31
很可能您的程序中有内存损坏。例如,双倍免费。你是说,当负载很高时,分段故障就会出现,所以这很可能是比赛条件。
当我们同时使用线程不安全的对象(通过Singleton模式)时,我们遇到了这个问题,从而在内存提升方面出现了各种问题。您可能会通过在堆栈跟踪中查找每个框架来找出您的问题所在。它对我起了作用--分段错误是由std::string析构函数引起的,其中std::string是线程-不安全的对象结构的一部分。
https://stackoverflow.com/questions/34146880
复制相似问题