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

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调试

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值