我想知道Hippomocks如何拦截exit
函数调用,例如下面的代码所示:
MockRepository mocks;
mocks.ExpectCallFunc(exit).With(2).Throw(std::exception());
我想知道Hippomocks如何拦截exit
函数调用,例如下面的代码所示:
MockRepository mocks;
mocks.ExpectCallFunc(exit).With(2).Throw(std::exception());
负责拦截的代码位于hippomocks.h
文件中。它修改内存保护标志以允许写入提供的函数指针地址,然后在函数初始字节的位置写入跳转指令。当不再需要挂钩时,将恢复原始字节。例如,Microsoft Detours库使用相同的方法。