关闭→
当前位置:留下吧健康网> 皮肤科 > C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入

时间:2022-06-16 23:51:09 皮肤科 我要投稿

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入

函数插入是将对动态库中函数的调用替换为对用户定义的包装器的调用的概念。

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


有什么应用?

我们可以计算函数调用的次数。

存储调用者的信息和传递给函数的参数以跟踪使用情况。

检测内存泄漏,我们可以覆盖malloc()并跟踪分配的空间。

我们可以添加自己的安全策略。例如,我们可以添加一个策略,即不能以超过指定的递归深度调用fork。

功能如何设置?

任务是编写我们自己的malloc()并确保在库malloc()的位置调用了我们自己的malloc()。下面是一个驱动程序,用于测试malloc()的不同类型的插入。

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


1、编译时间:编译源代码时,用我们自己的函数替换库调用。

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


在Linux上执行上述步骤:

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


2、链接时间:将可重定位目标文件静态链接以形成可执行目标文件时。

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


在Linux上执行上述步骤:

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


3、加载/运行时间:将可执行目标文件加载到内存中,进行动态链接,然后执行。

环境变量LD_PRELOAD为加载程序提供了要在命令或可执行文件之前加载的库列表。

我们创建一个动态库,并确保在我们的hello.c可执行文件之前加载了它。

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


在Linux上执行上述步骤:

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


用户定义的malloc的代码应保持较小,以提高可读性。理想情况下,它应该通过调用库malloc()来分配内存。

另外如果你想更好地提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

编程学习书籍分享:

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入


编程学习视频分享:

C/C++编程笔记:什么叫做函数插入?解析C语言中的函数插入

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

C语言C++编程学习交流圈子,点击下方的【了解更多】获取更多学习资料帮助你学习进步哦~