2009年8月18日 星期二

trace ffmpeg裡面的H.264相關code I

我覺得這樣直接看code好累喔
所以我就用別的方法看code
本來想用valgrind來直接profiling整個程式
但是這樣只能知道在程式哪裡花最多的時間 這應該是我下一步要做的事

好吧 就用debugger來看code吧
就是用netbeans來看code(第一次用ide來看code)
其實上網找了一下 沒發現有人將ffmpeg放到netbeans上開發(可能是隨便放都放得上去..)
但是這時出現了一個問題 就是ffmpeg是一個要先configure才能make的程式
ffmpeg再configure的時候後會產生一個config.h的檔 沒有這個檔是沒辦法成功compile的
我一時之間想不到比較好的方法 就先用confiure產生了config.h 就將這個檔寫死 就當成source code原有的檔
蠻想知道如果是一個要先configure再make的project 要怎麼放到netbeans 才會比較好
我現在的這種放法 就會鎖死configure 但是開發的時候好像也會只用一種configure

好我放上去了 主要就是選擇c/c++ project with existing source
接下來這邊的的設定很簡單 我設定的是將source跟編譯出來的object跟執行檔放在同樣的資料夾下
這是很糟的方式 全部都混在一起 但是比較不會錯
然後我不小心發現netbeans可以接受先configure再make的編譯方式....(其中一個選項)

一完成新project的設定 他馬上就開始make之後就是產code assistance的東西
但是這邊會有一些failed的 我不太清楚原因 我猜可能是我的configure會讓他少編譯很多東西
結果導致一些code assistance做不出來 不過我是用來trace程式的 就隨便他了
這樣就是設定好了

我就要開始利用netbeans來trace code了 這時發現他居然不理breakpoint
我看了一下 因為makefile是用ffmpeg的makefile 所以說我必須要再compile的option中開啟debug來
找了一下不知道再那 突然想到我在configure的時候有設一個option --disable-debug
這原本是要讓binary變小的(少compile debug information)
我就將他去掉 果然就可以使用debug了

沒有留言:

張貼留言