首页 > 其他分享 >22/8/17深入理解计算机系统第七章笔记

22/8/17深入理解计算机系统第七章笔记

时间:2022-08-17 22:25:00浏览次数:61  
标签:调用 函数 17 22 目标 编译 打桩 第七章 链接

7.13 库打桩机制

库打桩:允许截获对共享库的调用,转而执行自己的代码。使用这个机制可以追踪某个特殊库函数的调用次数,验证和追踪它的输入和输出值,或者替换它。
需要创建一个包装函数,原型和目标函数完全一样。通常包装函数执行自己的逻辑,然后调用目标函数,再返回目标函数。
打桩可以发生在编译时,链接时,加载时和运行时。
编译时打桩:打桩的编译器参数:P492

链接时打桩
编译时打桩需要能访问程序的源代码,链接时打桩需要能够访问程序的可重定位对象文件,运行时打桩需要能够访问可执行目标文件。

运行时打桩基于链接器的LD_PRELOAD环境变量,它被设置为一个共享库路径名的列表。解析未定义的引用时,动态链接器优先搜索这个库。

(有时间试试链接时打桩和运行时打桩)

7.14 处理目标文件的工具

AR、NM、SIZE、READELF、LDD
定义见书P496

标签:调用,函数,17,22,目标,编译,打桩,第七章,链接
From: https://www.cnblogs.com/hy227/p/16596791.html

相关文章

  • 8.17
    CF1718A题意:给定一个序列,每次可以花费\(\lceil\frac{r-l+1}{2}\rceil\)的代价选择一段区间\([l,r]\),并把区间里的每个数字异或上\(x\),最少花费多少代价可以让整个序列变......
  • 20220817 第一组 于芮 mysql数据库查询(第三十四天)
     小白成长记——第三十四天   今天主要学习了mysql数据库的查询语句,对于一个合格的程序猿来说,掌握数据库的查询语句是非常重要的,所以今天不仅学习了理论知识,还作了......
  • 20220806-第八组-王凌霄-学习笔记
    List:数据是有顺序(添加的先后顺序)的,数据是可以重复的ArrayList:内部结构是数组,比较适合做高频率的查找、遍历LinkedList:双向链表,比较适合做高频率的新增和删除继承和实现......
  • 2022-8-17数据库查询联系
    DQL查询语言子查询按照结果集的行列数不同,子查询可以分为以下几类:标量子查询:结果集只有一行一列(单行子查询)列子查询:结果集有一列多行行子查询:结果集有一行多列......
  • IOI 2022 简要题解
    考前写题解增加RP。D1T1:考虑按照列DP。对于每一列选择的鱼的区间进行决策。每列中被选择的y坐标最大的鱼,需要被左面或右面覆盖。假设我们决策好了前i列的方案,考虑第i列......
  • Codeforces 1713C - Build Permutation
    题意为给出一个长度为n的空数组,数组下标为0至n-1。我们需要在数组中的每个位置上填上合适的数A[i],使得i+A[i]为完全平方数。并且数组最后需为0至n-1的一个排列。......
  • 2022-08-17 第三小组 陈迪 学习笔记
    --1根据学生学号查询2020年-1-1之后借过哪些书籍SELECTs.sid,s.sname,bk.bname,b.bdateFROMborrowrecoredbLEFTJOINstudentsONs.cid=b.cidLEFTJOINbook......
  • 2022-08-17 第六小组 高佳誉 学习笔记
    DQL查询语言子查询按照结果集的行列数不同,子查询可以分为以下几类:标量子查询:结果集只有一行一列(单行子查询)列子查询:结果集有一列多行行子查询:结果集有一行多列表子......
  • acwing2022秋招每日一题 1302. 层数最深叶子节点的和
    题目给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。思路根据层序遍历,访问所有节点。将每一层上的结点,进行统计,直到最后一层时,统计所有节点数。......
  • 2022-08-16 第五组 赖哲栋 学习笔记
    DQL数据库查询语言重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。构建数据库创建一张student表:DROPTABLEIFEXISTSst......