开发者社区> 问答> 正文

大家请帮忙看看这个是Xcode的bug么?还是自己的错误。在调试FFmpeg的时候发现的。

在调试FFmpeg的时候发现一个古怪问题,我使用xcode进行编译和调试。编译成X86的版本。在跟踪调试的时候发现一个怪问题。

代码在ffmpeg_opt.c的static int open_input_file(OptionsContext *o, const char *filename)函数内。

#ifdef DEBUG
    av_log(NULL,AV_LOG_INFO,"func:%s(%d) filename:%s \n", __func__,__LINE__,filename);
#endif

    if (!strcmp(filename, "-"))  //当程序运行过这行代码后,调试窗口现实filename的值为NULL.非常奇怪。
        filename = "pipe:";

#ifdef DEBUG
    av_log(NULL,AV_LOG_INFO,"func:%s(%d) filename:%s \n", __func__,__LINE__,filename); //这个是我添加的代码,这里可以打印出filename的正确值。
#endif

当程序运行完strcmp(filename,"-")之后,filename的debug窗口显示是NULL值。

大家可以在克隆https://github.com/daozhao/FFmpeg.git这个项目,然后checkout release/2.2withComment这个分支。 这个已经分支包含了xcode project的文件,然后运行调试FFmpegMakefile targets,重现我的bug。

另外我也录制了屏幕,大家可以直接观看我的情况。http://v.youku.com/v_show/id_XNjk4NTkxNzUy.html

我的系统版本10.9.2,xcode的版本是5.1.1

展开
收起
a123456678 2016-06-06 16:11:37 1923 0
1 条回答
写回答
取消 提交回答
  • 最后发现,是编译的时候添加了优化选项 -O3。
    由于使用External Build System,Makefile是ffmpeg自动生成的。它添加了编译优化选项-O3。所以出现上边的情况。

    2019-07-17 19:28:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载