使用 gmock 时出现段错误
SegFault when using gmock
我正在使用 gmock 1.6 框架来编写单元测试代码。
单元测试退出并在 windows.
上正常工作
目标是 运行 他们 linux。
在 Linux 开发环境中:
当我使用 eclipse CDT 时,测试工作正常。
但是当我使用命令行命令(cmake .. && make)时,我在执行时遇到了分段错误。
软件版本:
- GNU 制作 4.1
- gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
- cmake 3.10.2
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后问题解决
我正在使用 gmock 1.6 框架来编写单元测试代码。 单元测试退出并在 windows.
上正常工作目标是 运行 他们 linux。
在 Linux 开发环境中:
当我使用 eclipse CDT 时,测试工作正常。
但是当我使用命令行命令(cmake .. && make)时,我在执行时遇到了分段错误。
软件版本:
- GNU 制作 4.1
- gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
- cmake 3.10.2
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后问题解决