1、编译可调试的FFmepg

(1)、使用命令:

./configure --enable-debug --disable-optimizations --disable-asm --disable-stripping 

注意一定要加--disable-stripping, 如果不加此选项,ffmpeg在编译时,会使用strip去掉符号信息。

(2)、然后make

make

2、gdb调试

(1)、假设有main.c文件

#include <stdio.h>int funct(int n)
{int sum=0,i;for(i=0; i<n; i++){sum+=i;}return sum;
}void main()
{int i;double result = 0;for(i=1; i<=10; i++){result += i;}printf("result[1-50] = %d /n", funct(50) );
}

编译生成执行文件:(Linux下)
    gcc -g main.c -o main

(2)、使用gdb调试

gdb main           #启动GDB
set args 参数      #指定运行时的参数
start              #开始执行程序,停在main函数第一行语句前面等待命令

常用的调试命令有:

r                        #运行程序n                      #单步执行c                      #继续运行info break                     #查看断点信息break func                       #在函数func()的入口处设置断点break filename:linenum                          #在源文件filename的linenum行处停住delete 断点号n                          #删除第n个断点

gdb调试查看内存

x/<n/f/u> <addr>           注:  n、f、u是可选的参数,<addr>表示一个内存地址
f 表示显示的格式,参数 f 的可选值:x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十六进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。c 按字符格式显示变量。f 按浮点数格式显示变量。
n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容
u 表示将多少个字节作为一个值取出来,如果不指定的话,GDB默认是4个bytes,如果不指定的话,默认是4个bytes。
当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。参数 u 可以用下面的字符来代替:b 表示单字节h 表示双字节w 表示四字节g 表示八字节

参考网址:http://www.cnblogs.com/shakin/p/3963345.html

参考网址:http://blog.csdn.net/wansbest/article/details/8284514      ffmpeg调试配置

参考网址:http://blog.csdn.net/haoel/article/details/2879/                                                  gdb调试

参考网址:https://wenku.baidu.com/view/5bdb4c83bceb19e8b8f6ba16.html                gdb调试

参考网址:http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html             gdb调试

【FFMPEG系列】之ffmpeg怎么利用gdb调试以及gdb调试快捷键相关推荐

  1. 【FFMPEG系列】FFMPEG linux下集成x264

    FFMPEG集成x264 1.x264下载地址: http://download.videolan.org/pub/videolan/x264/snapshots/ 2. FFMPEG引入外部库x26 ...

  2. ffmpeg系列-解决ffmpeg获取aac音频文件duration不准

    这个问题是这样产生的,一同事反应会随机出现ijk获取到的aac文件的duration不准,发来一看,确实不准,在AE或者系统mediaplayer中得到的都是8.4秒(准确时间是MtkAACExtra ...

  3. c++ gdb 绑定源码_2020重学Go系列:30. 非常详细的 Go 语言 GDB 调试指南

    做为新手,熟练掌握一个好的调试工具,对于我们学习语言或者排查问题的时候,非常有帮助. 你如果使用 VS Code 或者 Goland ,可以直接上手,我就不再写这方面的文章了. 其实相比有用户界面的 ...

  4. 利用QEMU+GDB搭建Linux内核调试环境

    前言 对用户态进程,利用gdb调试代码是很方便的手段.而对于内核态的问题,可以利用crash等工具基于coredump文件进行调试. 其实我们也可以利用一些手段对Linux内核代码进行gdb调试,qe ...

  5. Android FFmpeg系列——7 实现快进/快退功能

    Android FFmpeg系列--0 编译.so库 Android FFmpeg系列--1 播放视频 Android FFmpeg系列--2 播放音频 Android FFmpeg系列--3 C多线 ...

  6. ffmpeg系列之mp4与ts格式转换

    ffmpeg系列之mp4与ts格式转换 1. M3U 协议解析 1.1.Tag说明 2.HLS 与 M3U8 3.通过ffmpeg进行转换 3.1. mp4格式转换为ts格式 3.2. ts格式拼接命 ...

  7. 【FFMPEG系列】之查看FFMPEG版本号

    序   ffmpeg编译后执行可执行文件会提示各组件库的版本信息,这些版本信息从何而来是本文关注的重点 1.ffmpeg版本信息一探 1.1 windows下示例   (1)假设你在windows下编 ...

  8. ffmpeg系列-编译

    1.ubuntu下编译 下载ffmpeg源码 git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg 如果只是正常编译的话 ./configure -- ...

  9. PostgreSQL源码系列二:Postgres-XL调试基础GDB Debug范例

    一. 前言 接上一篇,上篇的pg_hba的配置还是有点问题的,本篇将通过Debug来解析问题根源. 二. 问题 由于postgres是超级管理账户,实际使用中不可能开放给普通用户,我们模拟下生产环境, ...

最新文章

  1. Python 刷英语六级段落匹配仅需 3 秒?
  2. Complete Guide to Parameter Tuning in XGBoost (with codes in Python)
  3. 简述推荐系统中的矩阵分解
  4. 一个软件网络连接异常_你的电脑运转正常吗?这 10 款系统监控软件能告诉你答案...
  5. Socket开发框架之消息的回调处理
  6. 组织架构适配下的敏捷开发
  7. 操作系统课设 Nachos 实验二:Nachos 的 Makefiles
  8. picasa csdn_前5名:Picasa的开源替代品,SourceForge / Slashdot采访等
  9. Linux常用命令大全 阶段性总结(二)
  10. 13.3.8 添加换行符和换页符
  11. go import 导入包名前加下划线 _
  12. FMI飞马网 | AI人工智能:54份行业重磅报告汇总(附下载)
  13. 天载配资关注这个转折点机会
  14. 微信小程序开发-模仿“优优老师”课程日历
  15. java导出excel下载后文件损坏无法修复
  16. 初识c语言day05(100的阶乘和输出补码)
  17. MIME类型(content-type)一览
  18. word中英文间距太大了,勾选允许中英文换行后,英文单词被拆开
  19. matlab怎么伯努利分布,伯努利分布 Bernoulli distribution
  20. HBase 集成 Phoenix 构建二级索引实践

热门文章

  1. shell export path_Shell的变量声明
  2. c语言中被调用函数只需在主调函数中声明,其他函数中不用声明,求助,函数在其他函数中使用时要先声明后调用,这个没声明就用了...
  3. 从此,懂一点CDMA
  4. Linux中切换用户(su命令)
  5. python创建文件对象的函数_Python 文件对象常用内建方法
  6. 【电脑帮助】解决Wind10系统spacedesk程序开机自启动的问题
  7. SQL--查询无记录,显示默认一条记录
  8. 对List集合中的对象进行按某个属性排序
  9. Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed betwee...
  10. AMQP Connection 127.0.0.1:5672] ERROR [o.s.a.rabbit.connection.CachingConnectionFactory] CachingConn