如何探索底层源码

以跟踪对象alloc方法的实现为例,介绍查找底层源码库的三种方法:

  • 1、通过按住control+step into
  • 2、符号断点直接跟流程
  • 3、汇编跟流程
1、通过按住control+step into
  • main中的LGPerson处加一个断点,运行程序,会断在LGPerson位置


  • 按住 control键,选择 step into键


  • 进去后,显示为以下内容


  • 再下一个objc_alloc符号断点,符号断点后显示了 objc_alloc所在的源码库,该方法在libobjc.A.dylib库中
2、符号断点直接跟流程
  • 选择Symbolic Breakpoint,添加一个alloc符号断点,添加后将断点先设置为disable


  • LGPerson处加一个断点


  • 运行程序后将会断在LGPerson *p1 = [LGPerson alloc];,此时打开刚才添加的alloc符号断点,点击继续执行

从上面可以看出, 源码在libobjc.A.dylib

3、汇编跟流程
  • LGPerson处加一个断点


  • xcode工具栏选择Debug --> Debug Workflow --> Always Show Disassembly,这个选项表示始终显示反汇编 ,即通过汇编跟流程代码执行流程

  • 运行程序后将会断在LGPerson *p1 = [LGPerson alloc];,按住control,点击step into键,执行到下图的callq ,对应 objc_alloc

  • 按住control,点击 step into键进入,看到断点断在objc_alloc部分


  • 添加objc_alloc的符号断点,得知源码所在库

Apple提供的源码下载地址

Refrences

https://www.jianshu.com/p/11b7d19b02b6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容