欢迎光临散文网 会员登陆 & 注册

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

2020-10-31 22:04 作者:C语言编程__Plus  | 我要投稿

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


有什么应用?

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

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

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

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

功能如何设置?

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


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


在Linux上执行上述步骤:


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


在Linux上执行上述步骤:


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

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

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


在Linux上执行上述步骤:


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

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

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

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

学习C/C++编程知识,提升C/C++编程能力,欢迎关注UP一起来成长!
另外,UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

编程学习书籍分享:


编程学习视频分享:



C/C++编程笔记:什么叫做函数插入?带你解析C语言中的函数插入的评论 (共 条)

分享到微博请遵守国家法律