大家请帮忙看看这个是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
纯洁D笑面
10 years, 10 months ago