函数插入是将对动态库中函数的调用替换为对用户定义的包装器的调用的概念。
有什么应用?
我们可以计算函数调用的次数。
存储调用者的信息和传递给函数的参数以跟踪使用情况。
检测内存泄漏,我们可以覆盖malloc()并跟踪分配的空间。
我们可以添加自己的安全策略。例如,我们可以添加一个策略,即不能以超过指定的递归深度调用fork。
功能如何设置?
任务是编写我们自己的malloc()并确保在库malloc()的位置调用了我们自己的malloc()。下面是一个驱动程序,用于测试malloc()的不同类型的插入。
1、编译时间:编译源代码时,用我们自己的函数替换库调用。
在Linux上执行上述步骤: