|
GCC -O選項(xiàng) 這個(gè)選項(xiàng)控制所有的優(yōu)化等級(jí)。使用優(yōu)化選項(xiàng)會(huì)使編譯過程耗費(fèi)更多的時(shí)間,并且占用更多的內(nèi)存,尤其是在提高優(yōu)化等級(jí)的時(shí)候。 除了-O0以外,每一個(gè)-O設(shè)置都會(huì)多啟用幾個(gè)選項(xiàng),請(qǐng)查閱gcc手冊(cè)的優(yōu)化選項(xiàng)章節(jié),以便了解每個(gè)-O等級(jí)啟用了哪些選項(xiàng)及它們有何作用。 讓我們來逐一考察各個(gè)優(yōu)化等級(jí): -O0:這個(gè)等級(jí)(字母“O”后面跟個(gè)零)關(guān)閉所有優(yōu)化選項(xiàng),也是CFLAGS或CXXFLAGS中沒有設(shè)置-O等級(jí)時(shí)的默認(rèn)等級(jí)。這樣就不會(huì)優(yōu)化代碼,這通常不是我們想要的。 GDB(GNU Debugger)是GCC的調(diào)試工具。其功能強(qiáng)大,現(xiàn)描述如下: GDB主要幫忙你完成下面四個(gè)方面的功能: 1.啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。 2.可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處停住。(斷點(diǎn)可以是條件表達(dá)式) 3.當(dāng)程序被停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。 4.動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。 GCC -g選項(xiàng)控制GDB調(diào)試級(jí)別 如果不打開-g或者-ggdb(GDB專用)調(diào)試開關(guān),GCC編譯時(shí)不會(huì)加入調(diào)試信息,因?yàn)檫@會(huì)增大生成代碼的體積。GCC采用了分級(jí)調(diào)試,通過在-g選項(xiàng)后附加數(shù)字1、2或3來指定在代碼中加入調(diào)試信息量。默認(rèn)的級(jí)別是2(-g2),此時(shí)調(diào)試信息包括擴(kuò)展的符號(hào)表、行號(hào)、局部或外部變量信息。級(jí)別3(- g3)包含級(jí)別2中的調(diào)試信息和源代碼中定義的宏。級(jí)別1(-g1)不包含局部變量和與行號(hào)有關(guān)的調(diào)試信息,只能用于回溯跟蹤和堆棧轉(zhuǎn)儲(chǔ)之用。[ 回溯跟蹤指的是監(jiān)視程序在運(yùn)行過程中的函數(shù)調(diào)用歷史,堆棧轉(zhuǎn)儲(chǔ)則是一種以原始的十六進(jìn)制格式保存程序執(zhí)行環(huán)境的方法,兩者都是經(jīng)常用到的調(diào)試手段。 |
|
|