美文网首页
iOS 组件化-二进制文件断点调试原理篇

iOS 组件化-二进制文件断点调试原理篇

作者: KeyboardDirver | 来源:发表于2019-10-06 13:20 被阅读0次
手动置顶

iOS 开源二进制辅助插件- 10倍以上提升编译速度 - 附详细使用教程
也把美团的 「二进制文件断点调试」功能集成进来了
https://github.com/MeetYouDevs/cocoapods-imy-bin
感谢一楼的分享。有时间可以研究一下

对组件的二进制化可以提升项目的编译速度,但是在组件发生崩溃时,端点的是汇编代码。纠错会变得复杂。那么如何对二进制文件进行断点调试呢?原理先看下面的小实验。

第一步:创建一个.a的静态库
0.创建一个.a静态库


创建静态库.png

1.静态库分为debug版和release版 iphone版和模拟器版。在build settings 搜索only 设置为NO

静态库设置.15.32.png

2.在m文件中写一个方法show 在h文件中声明

3.然后选择一个手机模拟器 再command+b后products中生成的libLWaa.a 才能在所有型号的模拟器上运行
4.然后选中libLWaa.a show in finder 就看到你的静态库了

第二步:创建一个项目使用刚才创建好的.a库
把.a和.h都拉入到项目中来. 拉入时经测试选择不选择copy 都会端点到.a库的.m文件中。

然后使用库方法 并且在调用方法处设置断点 使用并设置断点.png
运行代码。当断点到show 方法时点击进入方发 。注意,不要选择单步或者下个断点。
进入方法.png 这样你就进入到了对应的.m文件中了。可以继续设置断点并打印信息了 调试.png

点击.m文件中的代码右键show in finder

看看.m文件的位置时你刚才创建的LWaa的静态库工程的位置。 找位置.png show方法中写了一个数组越界。崩溃信息也会正常输出 崩溃.png

在debug的时候会存储对应代码的位置,在断点的时候寻找对应的代码进行展示。接下来就是如何找到代码的路径。

具体内容在下一篇文章中会。
内容来自美团技术博客,我在此扩充实践部分。

相关文章

  • iOS 组件化-二进制文件断点调试原理篇

    手动置顶 iOS 开源二进制辅助插件- 10倍以上提升编译速度 - 附详细使用教程也把美团的 「二进制文件断点调试...

  • OC对象原理(一) alloc&init探索

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

  • OC对象原理(三) isa原理与对象的本质

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

  • iOS底层原理开篇

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

  • LLDB调试(二)

    前言: lldb断点类型: 软件断点:正在调试的二进制文件中的断点,在调试器应使用一种迫使 CPU发出软件中断(又...

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • iOS组件化

    0.ios组件化/模块化1.iOS 组件化开发项目框架设计2.iOS 组件二进制化方案3.组件化4.Seemygo...

  • iOS打包加速与组件二进制化

    iOS打包加速与组件二进制化 随着iOS模块化灰度改造方案iOS模块化灰度 A/BTest的实施,以及组件化拆分的...

  • iOS 常用调试方法:断点

    级别: ★☆☆☆☆标签:「Xcode断点调试」「iOS breakpoint」「iOS全局断点」作者: Xs·H...

  • iOS - NSLog打印(精准打印)

    常用的NSLog的语句 在iOS开发过程中,调试是很重要的过程,而除了各种断点调试(普通断点、条件断点、全局断点)...

网友评论

      本文标题:iOS 组件化-二进制文件断点调试原理篇

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