美文网首页
iOS学习开源库断点方法

iOS学习开源库断点方法

作者: ashura_ | 来源:发表于2017-05-06 16:52 被阅读0次

    问题

    工作原因遇到音视频相关开源库,例如:live555,ffmpeg,ijkplayer,vlc等等。现在把其中的经验记录如下。

    方案

    方案1集成源码

    其中live555客户端源码较少可以直接把源码文件copy进工程,直接调试即可。

    com_ios_mediacodec_VideoDecoder_hh_和_videotoolbox_m.png

    方案2自己编译而后打断点

    包括ffmpeg以及vlc.ijkplayer是基于ffmpeg开发的,ijk原生部分代码可以直接调试,ijk依赖的ffmpeg也需要用到方案2.

    案例1ijkplayer

    参照iOS 版FFMPEG调试
    安装好之后,直接打断点即可,例如找到调用的ffmpeg解码函数avcodec_decode_video2,单步跟进

    utils_c.png

    案例2MobileVLCKit

    参照iOS编译MobileVLCKit客户端打开Demo工程
    先在player.m打断点

    - (void)playMedia {
        [_player play];
    }
    
    videotoolbox_m_和_utils_c.png

    需要注意的点

    • 因为是多线程的,调试步进到某一部分就已经进不去了。因为在别的线程执行了,这就需要自己对源码的基本框架有所了解了
    • 这种打断点弊端一,无index关键字不变色,无法跳转进去对应的类以及方法。
    • 弊端二,我想知道videotoolbox.m相关调用,因为没有videotoolbox.h对应代码是动态条用的,只能通过对源码的了解猜测才能步进videotoolbox.m这个文件,只有找到至少 一个能进入videotoolbox.m的地方,才能给videotoolbox.m打断点。

    参考文献

    VLC架构及流程分析

    相关文章

      网友评论

          本文标题:iOS学习开源库断点方法

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