美文网首页
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 组件化-二进制文件断点调试原理篇

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