【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調試

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章