<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話(huà) > DSP編程技巧之5---揭開(kāi)編譯器神秘面紗之調(diào)試與路徑選項(xiàng)

          DSP編程技巧之5---揭開(kāi)編譯器神秘面紗之調(diào)試與路徑選項(xiàng)

          作者:paradoxfx 時(shí)間:2014-01-06 來(lái)源:電子產(chǎn)品世界 收藏

            在程序的編寫(xiě)與測(cè)試中,調(diào)試功能是非常重要的,很多時(shí)候我們需要一步步的調(diào)試與觀察才能找到一些隱藏很深的bug,所以要對(duì)的調(diào)試選項(xiàng)有一些了解,下面我們首先看一下的調(diào)試選項(xiàng)都有哪些。

          本文引用地址:http://www.ex-cimer.com/article/215181.htm

            表1 的調(diào)試選項(xiàng)

          選項(xiàng)

          別名

          優(yōu)化的效果

          --symdebug:dwarf

          -g

          -g是默認(rèn)選項(xiàng),在缺省情況下,大多數(shù)程序和庫(kù)都是帶調(diào)試符號(hào)(gcc 參數(shù) -g)編譯的。當(dāng)調(diào)試一個(gè)帶調(diào)試符號(hào)的程序時(shí),調(diào)試器不僅能給出內(nèi)存地址,還能給出函數(shù)和變量的名字。產(chǎn)生符號(hào)調(diào)試信息并不會(huì)影響程序的優(yōu)化效果。

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

          --symdebug:coff

           

          使用交替的S調(diào)試格式來(lái)使能符號(hào)調(diào)試;調(diào)試信息的傳統(tǒng)格式被稱(chēng)為 STAB(符號(hào)表)。STAB 調(diào)試格式是一種記錄不完整的半標(biāo)準(zhǔn)格式,用于調(diào)試 COFF ELF 對(duì)象文件中的信息。調(diào)試信息是作為對(duì)象文件的符號(hào)表的一部分進(jìn)行存儲(chǔ)的,因此復(fù)雜性和范圍是有限的。

          使用這種格式的目的是為了與一些很古老的調(diào)試器或者用戶(hù)自定義的調(diào)試工具進(jìn)行兼容,因?yàn)檫@些工具往往不兼容新的DWARF格式。

          使用這個(gè)選項(xiàng)有可能會(huì)對(duì)程序的優(yōu)化造成影響,因?yàn)闉榱耸褂?/span>STAB格式下的調(diào)試功能,有些代碼需要被保留而無(wú)法優(yōu)化。

          --symdebug:none

           

          禁止所有的符號(hào)調(diào)試信息。

          不建議使用這個(gè)選項(xiàng),因?yàn)樗昧苏{(diào)試功能,并使得程序的性能分析變得非常困難。比如說(shuō)我們測(cè)算代碼的運(yùn)行時(shí)間的時(shí)候,就需要在代碼中插入斷點(diǎn)使用調(diào)試功能完成測(cè)算。

          --symdebug:profile_coff

           

          使用交替的STABS調(diào)試格式來(lái)進(jìn)行程序的性能分析。

          里,使用這個(gè)選項(xiàng)可以在函數(shù)級(jí)別上插入斷點(diǎn)并估算程序運(yùn)行時(shí)間,但是不能使用單步調(diào)試功能。

          --symdebug:skeletal

           

          已經(jīng)廢棄的參數(shù),不再建議使用,即使使能也不產(chǎn)生任何效果。

          --optimize_with_debug

          -mn

          已經(jīng)廢棄的參數(shù),不再建議使用,即使使能也不產(chǎn)生任何效果。

          --symdebug:keep_all_types

           

          這是一個(gè)編譯器的高級(jí)調(diào)試選項(xiàng),它用來(lái)保持未參考的類(lèi)型信息。也就是說(shuō),使能這個(gè)選項(xiàng)之后,可以在調(diào)試時(shí)觀察定義包含在COFF可執(zhí)行文件中,但是沒(méi)有被任何地方引用的符號(hào)(默認(rèn)情況下這樣的符號(hào)是不具有調(diào)試信息的,使能調(diào)試之后變可以進(jìn)行一些調(diào)試相關(guān)的工作了)。

            調(diào)試選項(xiàng)看起來(lái)非常復(fù)雜,不過(guò)通過(guò)前面幾次的講解也可以看出,這些名字特別長(zhǎng),并且一般情況下沒(méi)有別名(縮寫(xiě)名)的選項(xiàng),基本都是輸入高級(jí)選項(xiàng),對(duì)于一般使用者來(lái)說(shuō)的話(huà),我們的主要目的不是去關(guān)心它編譯過(guò)程中有多么復(fù)雜的信息,只要利用它的結(jié)果,所以一個(gè)-g選項(xiàng)就能滿(mǎn)足大多數(shù)情況的使用了。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: DSP 編譯器 CCS STAB

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();