美文网首页
DYLD 动态链接器

DYLD 动态链接器

作者: 七维树 | 来源:发表于2021-05-05 18:25 被阅读0次

dyld加载流程

  • 程序从_dyly_start开始 -> dyld`dyldbootstrap::start
  • 进入dyld:main函数
  • 配置一些环境(sEnv) : rebase_dyld
  • 加载共享换成 load shared cache
  • DYLD2/DYLD3(闭包)
    • 实例化主程序
    • 加载动态库(首先是插入动态库insert library),主程序和动态库都会添加到allImages里面:loadallImages
    • 链接住程序、绑定符号(非懒加载、弱符号)等
    • 初始化方法InitializeMainExecutable
      • dyld`ImageLoder::runInitializers:
      • dyld`ImageLoder::processInitializers:
      • dyld`ImageLoder::recursiveInitialization:
      • dyld`dyld::notifySingle函数
        • 执行一个回调,执行libobjc库里面的方法
        • _objc_init初始化时赋值的一个函数Load_images,这里执行class_load_methods函数,然后call_class_loads函数调用各个类的Load方法
        • doModInitFunction函数,调用全局C++对象的构造函数__attribute((constructor))
      • 返回程序的入口函数,开始进入主程序的main函数

相关文章

  • iOS程序启动之dyld

    一、dyld简介: dyld全名为dynamic loader(动态链接器)(默认路径是/usr/lib/dyld...

  • DYLD 动态链接器

    dyld加载流程 程序从_dyly_start开始 -> dyld`dyldbootstrap::start 进入...

  • dyld 调用流程分析

    dyld 简介 dyld(the dynamic link editor)是苹果的动态链接器,用来加载所有的库和可...

  • 13 - dyld源码解析

    基本概念简介 dyld dyld全名The dynamic link editor。它是苹果的动态链接器,是苹果操...

  • dyld源码分析

    一、dyld简介 dyld( the dynamic link editor 动态链接器),是苹果操作系统的一个重...

  • ios-面试-App程序在main函数前做了哪些工作

    1,首先加载可执行文件, 2,然后加载苹果的动态链接器dyld,(dyld是一个专门用来加载动态链接库的库) 3,...

  • iOS dyld调用流程

    一、dyld概述 dyld(the dynamic link editor)动态链接器,是苹果操作系统一个重要组成...

  • DYLD

    一、DYLD dyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统一个重要...

  • 十、dyld流程分析

    dyld dyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统一个重要组成...

  • dyld简介及加载过程分析

    dyld dyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统一个重要组成...

网友评论

      本文标题:DYLD 动态链接器

      本文链接:https://www.haomeiwen.com/subject/xnnscltx.html