我想在每次函数调用之前添加一些代码来做一些检查。我知道的唯一方法是:
#define SOME_CODE printf("doing something...");
class testObject
{
void function1()
{
SOME_CODE
...
}
void function2()
{
SOME_CODE
...
}
}有没有更干净的方法来实现这一点?我正在寻找一种方法,这样我就不需要手动为每个函数添加"SOME_CODE“。
发布于 2012-04-20 03:38:02
你正在寻找的是所谓的“代码插装”,我在2012年的GDC2012上做了一个关于manual and compiler-automated instrumentation的演讲(点击here查看代码示例)。
有许多方法可以做你想做的事情。Wrapper functions、Detour和Trampolines,或者是其他答案中提到的_penter() / __cyg_profile_func_enter()方法。
所有这些以及其他一些工具方法在上面链接的PDF中都有详细介绍。
https://stackoverflow.com/questions/5081123
复制相似问题