本帖最后由 glory 于 2024-4-1 11:05 编辑
总结起来就是,keil用$Super$$ 和 $Sub$$,
[C] 纯文本查看 复制代码 extern void ExtraFunc(void);
extern void $Super$$foo(void);
/* this function is called instead of the original foo() */
void $Sub$$foo(void){
ExtraFunc(); /* does some extra setup work */
$Super$$foo(); /* calls the original foo() function */
/* To avoid calling the original foo() function
* omit the $Super$$foo(); function call. */
}
gcc 用__wrap 和 __real(并且用--wrap选项指定symbol),
[C] 纯文本查看 复制代码 void* __wrap_malloc(size_t size)
{
fprintf(stdout, "call __wrap_malloc function, size: %d\n", size);
return __real_malloc(size);
}
|