-g 和 -ggdb 都是令 gcc 生成調(diào)試信息克胳,但是它們也是有區(qū)別的
? ?? ???-g
? ?? ???該選項(xiàng)可以利用操作系統(tǒng)的“原生格式(native format)”生成調(diào)試
? ?? ???信息。GDB 可以直接利用這個(gè)信息枝恋,其它調(diào)試器也可以使用這個(gè)調(diào)試信息
? ?? ???-ggdb
? ?? ???使 GCC 為 GDB 生成專用的更為豐富的調(diào)試信息,但是重归,此時(shí)就不能用其
? ?? ???他的調(diào)試器來進(jìn)行調(diào)試了 (如 ddx)
? ?? ???-g 和 -ggdb 也是分級(jí)別的
? ?? ???-g2
? ?? ???這是默認(rèn)的級(jí)別,此時(shí)產(chǎn)生的調(diào)試信息包括擴(kuò)展的符號(hào)表威始、行號(hào)、局部
? ?? ???或外部變量信息像街。
? ?? ???-g3
? ?? ???包含級(jí)別2中的所有調(diào)試信息黎棠,以及源代碼中定義的宏
? ?? ???-g1
? ?? ???級(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)試手段俭厚。