在研究代码的过程中,调试运行是一种非常有效的方法。我们常用的Visual Studio建立的工程可以很方便地对程序进行调试运行。但是对于FFMpeg这样的工程,想要进行单步调试就没这么容易了。如果一定要调试运行 FFMpeg,最好按照我们之前博文的描述编译完成之后,放在Eclipse中进行调试运行。

在开始之前,需要按照前几篇博文的描述安装Ubuntu并编译FFMpeg的源代码。

具体链接见

在Ubuntu下编译FFmpeg  http://www.linuxidc.com/Linux/2014-11/109840.htm

Windows 7下硬盘安装Ubuntu 14.10图文教程 http://www.linuxidc.com/Linux/2014-10/108430.htm

U盘安装Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108402.htm

Ubuntu 14.10 正式发布下载 http://www.linuxidc.com/Linux/2014-10/108363.htm

Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10  http://www.linuxidc.com/Linux/2014-10/108381.htm

1、安装Eclipse

FFmpeg由C语言编写,因此我们的Eclipse需要安装cdt。在网上找过大量资料如何安装编译环境,但是表述都有些问题,安装之后依然无法建立C/C++工程。坑爹的是,最后发现其实这一步简单无比,一条语句就可以搞定:

sudo apt-get install eclipse eclipse-cdt g++

如果g++已经安装过的话在上述命令中可以省略。

参考:http://stackoverflow.com/questions/14721514/how-to-install-eclipse-with-c-in-ubuntu-12-10

2、在Eclipse中新建工程

我们已经完成了安装Eclipse cdt之后,选择File->New->Makefile Project With Existing Codes。

在随后弹出的对话框中,Browse到我们之前编译好的FFMpeg的目录中,此时Project Name会自动为我们填写好。然后在Toolchain for indexer settings中选择Linux GCC。单击确定,此时工程就建好了。

  • 注意1:如果FFMpeg之前是在其他目录中编译的,那么事先必须在Eclipse的workspace中单独再建一个目录并将之前的目录中的所有内容拷贝其中。如果直接browse到workspace之外,将无法建立工程。
  • 注意2:源代码的目录不要包含中文,否则Eclipse无法识别,将会出现找不到源码无法调试的情况。最保险的办法就是,将FFMpeg的源代码拷贝到Eclipse的workspace中进行编译,并在其中进行调试操作,可保证万无一失。

3、设置调试参数

我们在源代码目录——Binary目录下找到ffplay_g文件,右键单击,选择Debug Configuration:

在弹出的对话框中双击C/C++ Application,选择调试参数,如播放的文件:

然后apply在debug,就可以开始调试了。

在默认设置下,断点会停在main函数的第一行,但是现在显示的界面是酱紫的:

我们想要的源代码呢?其实做一个简单的操作就可以:单击右上角Debug前面的按钮并选择C/C++,就能看到C代码了。

调试过程中所用到的四个控制按键:

  • F5:单步调试,遇到函数时进入函数内部,相当于VS的F11;
  • F6:单步调试,遇到函数时跳过,相当于VS的F10;
  • F7:单步调试,从当前方法中跳出,相当于VS中的Shift+F11;
  • F8:调试运行程序,直到第一个断点,相当于VS中的F5.

Linux下编译FFmpeg之下载源文件并编译 http://www.linuxidc.com/Linux/2012-02/54565.htm

Linux 编译升级 FFmpeg 步骤 http://www.linuxidc.com/Linux/2013-08/88190.htm

CentOS 5.6 上安装 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm

在Ubuntu下安装FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm

FFmpeg 的详细介绍请点这里
FFmpeg 的下载地址请点这里

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-11/109841.htm

使用Eclipse对FFmpeg进行调试的更多相关文章

  1. 在ubunut下使用pycharm和eclipse进行python远程调试

    我比较喜欢Pycharm,因为这个是JetBrains公司出的python IDE工具,该公司下的java IDE工具--IDEA,无论从界面还是操作上都甩eclipse几条街,但项目组里有些人使用e ...

  2. 使用eclipse与jLink V8调试exynos 4412 u-boot

    /** ****************************************************************************** * @author    Maox ...

  3. Eclipse高级操作 远程调试

    Eclipse高级操作 远程调试 JPDA是SUN JDK自带的远程调试机制.它提供了一套标准的调试接口,可以从虚拟机一级允许外界用特定协议探测虚拟机内部的运作细节.只要你装了JDK1.2以上的SUN ...

  4. 【图文教程】Eclipse for PHP+XAMPP调试配置

    一.下载安装XAMPP 下载地址:https://www.apachefriends.org/download.html, 一路“Next”,安装完毕. 二.下载Eclipse for PHP 下载地 ...

  5. Maven + Eclipse + Tomcat - 开启项目调试之旅(转)

    本文的读者需要拥有一些Maven基础知识和实践,如果没有,请直接绕过或者先看一些关于Maven教程,比如Juven翻译的<Maven权威指南>,google一下便知. 开门见山,首先抛出一 ...

  6. eclipse/intellij idea 远程调试hadoop 2.6.0

    很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试 ...

  7. eclipse 常用快捷键及调试方法

    原文链接:http://my.oschina.net/u/1054538/blog/741561 常用快捷键 Eclipse最全快捷键,熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事 ...

  8. eclipse常用快捷键及调试方法(虽然现在看不懂,但是感觉以后肯定会用到,先转了)

    常用快捷键 Eclipse最全快捷键,熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事情. Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl ...

  9. Eclipse Tomcat配置/管理/调试指南

    从myeclipse转到Eclipse最不方便的之一莫过于Web项目部署了,老是在想怎么不能把myeclipse的那个移植过来,或者有没有高人能按照Myeclipse开发一个,非常遗憾. 原版的Ecl ...

随机推荐

  1. Oracle sql之条件语句 循环语句

    一 IF..THENIF condition THEN   statements 1;   statements 2;   ....END IF; 二 IF..THEN...ELSEIF condit ...

  2. 转 MetaWeblog API 编写

    如今,许多人都熟悉个人和公司或业界主办的博客.后者明显成为了传统公司和行业网站的下一代新兴产物.博客的内容涉及从简洁的特制产品公告和公共关系到实用且深刻的主题探索,这些主题可能对公司的产品或行业的未来 ...

  3. 【MVC】VS常用技巧

    1,在VS2010中,选中指定的代码段,可以拖拽到工具箱中,形成标签,以后还想书写类似的代码,双击鼠标即可. 2,在VS2012中,可以在注释上标注//TODO:我是注释 这样,注释就会出现在任务列表 ...

  4. kettle--window开发环境和linux运行环境的迁移

    首先要做的是将kettle在linux下搭建好. 一.搭建linux的kettle环境 1.1解压 (my_python_env)[root@hadoop26 ~]# .zip -d /usr/loc ...

  5. ThinkPHP 的一个神秘版本 ThinkPHP 1.2

    ThinkPHP 的一个神秘版本 ThinkPHP 1.2 询问过 ThinkPHP 官网的小伙伴都知道,偶尔 ThinkPHP 故障时会出现 ThinkPHP 1.2(下次看到就截图下来). 但是我 ...

  6. Microsoft Dynamics CRM 4.0 JScript 通用公共方法

    1.基本参数 var CRM_FORM_TYPE_CREATE = 1; var CRM_FORM_TYPE_UPDATE = 2; var CRM_FORM_TYPE_READ_ONLY = 3; ...

  7. C语言扩展动态内存报错:realloc(): invalid next size: 0x0000000002365010 ***

    晚上被这个内存扩展崩溃的问题折腾的有点崩溃,当答案揭晓的那一刻,恍然大悟,原来如此简单. 练习题目:输入一个字符串,根据字母进行排序,说白了就是一个简单的冒泡 #include <stdio.h ...

  8. SVN同步

    SVN同步:1.在备份服务器上安装SVN,之后创建同名的库名2.在备机的Repositories的库文件夹下的hooks目录下,备份并修改pre-revprop-change.tmpl文件为pre-r ...

  9. 织梦调用文章 ID (来源:百度知道)

    问:{dede:field.id /} {dede:channel type='son' orderby='sortrank'} <a href='[field:typeurl/]'>&l ...

  10. 安卓秘钥生成命令以及SHA1值获取办法

    切换到秘钥所在目录,例如:cd C:\Program Files\Java\jdk1.8.0_171\bin 执行命令:keytool -genkey -alias demo.keystore -ke ...