新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > DSP編程技巧之5---揭開編譯器神秘面紗之調試與路徑選項

        DSP編程技巧之5---揭開編譯器神秘面紗之調試與路徑選項

        作者:paradoxfx 時間:2014-01-06 來源:電子產品世界 收藏

          在程序的編寫與測試中,調試功能是非常重要的,很多時候我們需要一步步的調試與觀察才能找到一些隱藏很深的bug,所以要對的調試選項有一些了解,下面我們首先看一下的調試選項都有哪些。

        本文引用地址:http://www.104case.com/article/215181.htm

          表1 的調試選項

        選項

        別名

        優化的效果

        --symdebug:dwarf

        -g

        -g是默認選項,在缺省情況下,大多數程序和庫都是帶調試符號(gcc 參數 -g)編譯的。當調試一個帶調試符號的程序時,調試器不僅能給出內存地址,還能給出函數和變量的名字。產生符號調試信息并不會影響程序的優化效果。

        注:DWARF是一種很復雜的二進制文件格式,它和和 格式是使用最廣泛的兩種可執行和鏈接格式 (ELF)DWARF(使用任意記錄格式調試)是面向 ELF 文件的一種較新的格式。創建該格式是為了彌補 中的一些缺陷,從而能夠提供更詳細、更簡便的數據結構描述、變化的數據移動和復雜的語言結構,比如 C 中的語言結構。調試信息存儲在對象文件的各個部分中。這種格式是可執行程序與源代碼之間關系的簡單表示,為了便于調試器對該關系進行處理。對此感興趣的網友可以搜索《The DWARF Debugging Standard》標準仔細閱讀,或者參考IBM的網頁說明http://www.ibm.com/developerworks/cn/opensource/os-debugging/

        --symdebug:coff

         

        使用交替的S調試格式來使能符號調試;調試信息的傳統格式被稱為 STAB(符號表)。STAB 調試格式是一種記錄不完整的半標準格式,用于調試 COFF ELF 對象文件中的信息。調試信息是作為對象文件的符號表的一部分進行存儲的,因此復雜性和范圍是有限的。

        使用這種格式的目的是為了與一些很古老的調試器或者用戶自定義的調試工具進行兼容,因為這些工具往往不兼容新的DWARF格式。

        使用這個選項有可能會對程序的優化造成影響,因為為了使用STAB格式下的調試功能,有些代碼需要被保留而無法優化。

        --symdebug:none

         

        禁止所有的符號調試信息。

        不建議使用這個選項,因為它禁用了調試功能,并使得程序的性能分析變得非常困難。比如說我們測算代碼的運行時間的時候,就需要在代碼中插入斷點使用調試功能完成測算。

        --symdebug:profile_coff

         

        使用交替的STABS調試格式來進行程序的性能分析。

        里,使用這個選項可以在函數級別上插入斷點并估算程序運行時間,但是不能使用單步調試功能。

        --symdebug:skeletal

         

        已經廢棄的參數,不再建議使用,即使使能也不產生任何效果。

        --optimize_with_debug

        -mn

        已經廢棄的參數,不再建議使用,即使使能也不產生任何效果。

        --symdebug:keep_all_types

         

        這是一個編譯器的高級調試選項,它用來保持未參考的類型信息。也就是說,使能這個選項之后,可以在調試時觀察定義包含在COFF可執行文件中,但是沒有被任何地方引用的符號(默認情況下這樣的符號是不具有調試信息的,使能調試之后變可以進行一些調試相關的工作了)。

          調試選項看起來非常復雜,不過通過前面幾次的講解也可以看出,這些名字特別長,并且一般情況下沒有別名(縮寫名)的選項,基本都是輸入高級選項,對于一般使用者來說的話,我們的主要目的不是去關心它編譯過程中有多么復雜的信息,只要利用它的結果,所以一個-g選項就能滿足大多數情況的使用了。


        上一頁 1 2 下一頁

        關鍵詞: DSP 編譯器 CCS STAB

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肃北| 班玛县| 营口市| 宣汉县| 怀远县| 鹤岗市| 大渡口区| 综艺| 大悟县| 乌什县| 吉水县| 新邵县| 固始县| 三穗县| 涪陵区| 梅州市| 郴州市| 浮梁县| 舟山市| 门头沟区| 秀山| 德钦县| 武平县| 阳城县| 安泽县| 隆子县| 西林县| 伊金霍洛旗| 夏津县| 苏尼特右旗| 永胜县| 杨浦区| 仁寿县| 高邑县| 上饶县| 海南省| 昌都县| 临漳县| 卢龙县| 翁牛特旗| 图们市|