emock icon indicating copy to clipboard operation
emock copied to clipboard

MacOS 段错误

Open Cirnoo opened this issue 2 years ago • 1 comments

有没有更详细的文档,include哪些文件,怎么编译单元测试,怎么使用?源码工程中单元测试cmake编译不过,我自己编译了个静态库移植到自己的工程中

#include "emock/emock.hpp"

// 待测成员函数
class Foo
{
public:
    void bar1(int) {
        printf("aaaa\n");
    }
//    virtual void bar2(double);
//    static int bar3();
};

////////////////////////////////////

// 指定调用的mock函数
void EMOCK_API mock_bar1(Foo* obj, int) {
    // ...
}
void EMOCK_API mock_bar2(Foo* obj, double) {
    // ...
}

int main(int argc, char **argv) {
    EMOCK(&Foo::bar1)
            .stubs()
            .will(invoke(mock_bar1)); // 指定调用自定义的函数而不是指定返回值
}
_platform_memmove$VARIANT$Haswell 0x00007fff691539c2
[Inlined] emock::JmpOnlyApiHookImpl::saveOriginalData() JmpOnlyApiHook.cpp:56
[Inlined] emock::JmpOnlyApiHookImpl::startHook() JmpOnlyApiHook.cpp:62
[Inlined] emock::JmpOnlyApiHookImpl::JmpOnlyApiHookImpl(const void *, const void *) JmpOnlyApiHook.cpp:43
[Inlined] emock::JmpOnlyApiHookImpl::JmpOnlyApiHookImpl(const void *, const void *) JmpOnlyApiHook.cpp:42
emock::JmpOnlyApiHook::JmpOnlyApiHook(const void *, const void *) JmpOnlyApiHook.cpp:89
[Inlined] emock::ApiHookImpl::ApiHookImpl(const void *, const void *) ApiHook.cpp:36
[Inlined] emock::ApiHookImpl::ApiHookImpl(const void *, const void *) ApiHook.cpp:37
[Inlined] emock::ApiHook::ApiHook(const void *, const void *) ApiHook.cpp:48
emock::ApiHook::ApiHook(const void *, const void *) ApiHook.cpp:49
[Inlined] emock::ApiHookKey::ApiHookKey(const void *, emock::ApiHookHolder *, bool) ApiHookKey.cpp:36
emock::ApiHookKey::ApiHookKey(const void *, emock::ApiHookHolder *, bool) ApiHookKey.cpp:35
emock::HookMockObjectImpl::addMethod(const std::string &, const void *, emock::ApiHookHolder *, emock::InvocationMockerNamespace *, bool) HookMockObject.cpp:88
emock::HookMockObjectImpl::getMethod(const std::string &, const void *, emock::ApiHookHolder *, emock::InvocationMockerNamespace *, bool) HookMockObject.cpp:110
emock::HookMockObject::method(const std::string &, const void *, emock::ApiHookHolder *, bool) HookMockObject.cpp:139
emock::mockAPI<…>(const std::string &, void (Foo::*)(int)) ApiHookMocker.h:137
main main.cpp:36
start 0x00007fff68f5dcc9

Cirnoo avatar May 17 '22 02:05 Cirnoo

收到反馈

orca-zhang avatar Jun 01 '22 14:06 orca-zhang