从非成员函数调用类成员函数时崩溃

时间:2015-05-17 08:34:08

标签: linux c++11 g++

在我的代码中,我有一个类Log,其成员函数为Push。在其他地方,我使用来自非类函数的实例pLog->Push来调用此类函数。

void some_stuff()
{
    pLog->Push(...);
}

执行此操作会导致SIGSEGV: enter image description here

void Log::Push(const char *b)
{
    std::lock_guard<std::mutex> lock(m_Mutex);
    m_Messages.push_back(b); // std::deque<std::string>
}

删除互斥锁时,会在m_Messages.push_back(b)调用另一个崩溃。 经过一些研究后,我发现不会发生some_stuff这个崩溃的Log成员。 我甚至在另一个g ++版本(4.9)上试过这个,但它仍然会发生。

0 个答案:

没有答案