使用 gmock 时出现段错误

SegFault when using gmock

我正在使用 gmock 1.6 框架来编写单元测试代码。 单元测试退出并在 windows.

上正常工作

目标是 运行 他们 linux。

在 Linux 开发环境中:

软件版本:

class mockClass : puclic baseClass
{
   .....
   MOCK_METHOD1(function, void(const std::shared_ptr<mmmm>));
   .....

}

TEST(testSerie1, test1)
{
   mockClass attrb;
   ......
   EXPECT_CALL(attrb, function(_)).Times(AnyNumber()); // here code crahes
    ...
}

错误:

Thread 2 "m_thread" received signal SIGSEGV, Segmentation fault.
[Switching to Thread  (LWP 20104)]
0x0123 in testing::internal::FunctionMocker<void (std::shared_ptr<mmmmmmm>)>::Invoke(std::shared_ptr<mmmmmmm>) ()
(gdb) 
(gdb) 
(gdb) backtrace 
#0  ... in testing::internal::FunctionMocker<void (std::shared_ptr<mmmmmmm>)>::Invoke(std::shared_ptr<mmmmmmm>) ()
#1  ... in MockIClass::function(std::shared_ptr<mmmmmmm>) ()
.....
.....
.....
#6  0x00007ffff72bb66f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007ffff758e6db in start_thread (arg=0x7ffff664e700) at pthread_create.c:463
#8  0x00007ffff6d1688f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) 


有什么办法可以避免这种分段错误吗?

将googlemock库版本升级到1.8.1后问题解决