[FFmpeg-debug]用gdb调试ffmpeg_g


依赖

安装x264和yasm
安装 build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev

FFmpeg编译中增加

  --enable-debug=3 \
  --disable-optimizations \
  --disable-asm  \
  --disable-stripping \

GDB调试

有两种方式可以进入GDB,一种就是直接在命令行上输入gdb,然后再在gdb中用file命令加载要调试的程序;另一种就是,直接在命令行上使用:gdb 程序名

gdb ffmpeg_g //调试时应当是ffmpeg_g,它带有调试符号;而不是ffmpeg

file ffmpeg_g //file <文件名>: 加载被调试的可执行程序文件

set args -h filter=transform //用 "set args 参数值1 参数值2...."来设置输入参数

set args -i input.mp4 -vf transform=input_stereo_format=MONO:w_subdivisons=4:h_subdivisons=4:max_cube_edge_length=512 -qscale 20 output.mp4

//以上参数是ffmpeg加入facebook/transform代码的设置参数,自己调试时改成自己想要的参数就好了,ffmpeg常用参数一览表

b transform_pos //b <函数名称> : b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。

b 450 //b <行号>

r //Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。

p face //p <变量名称> : Print的简写,显示指定变量(临时变量或全局变量)的值。

c //Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。

i b //查看断点信息(i-->info,b-->break)

d <断点标号> //删除某个断点

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 程序调试的基本思想是“分析现象->假设错误原因->产生新的现象去验证假设”这样一个循环过程,根据现象如何假设错误原...
    Manfred_Zone阅读 16,693评论 0 26
  • 概述 GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。...
    咕咕鷄阅读 21,085评论 0 8
  • gdb git clone git://github.com/cgdb/cgdb.git cd cgdb ./au...
    G风阅读 3,134评论 0 0
  • 作者: liigo原文链接: http://blog.csdn.net/liigo/archive/2006/01...
    wuqingyi阅读 5,792评论 0 4
  • 在互联网+的时代,对影视产业有很大的影响,包括电影的制作技术、网络电影和影视众筹等。 影视行业本身是一个比较传统的...
    7ce5b9661c33阅读 1,819评论 0 0

友情链接更多精彩内容