用調(diào)試程序
14.2 用GDB調(diào)試GCC程序
Linux包含了一個(gè)叫GDB的GNU調(diào)試程序。GDB是一個(gè)用來(lái)調(diào)試C語(yǔ)言和C++程序的強(qiáng)力調(diào)試器。它能在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。以下是GDB所提供的一些功能:能監(jiān)視程序中變量的值;能設(shè)置斷點(diǎn)以使程序在指定的代碼行上停止執(zhí)行;能一行行地執(zhí)行代碼。
表14.4 基本GDB命令
當(dāng)啟動(dòng)GDB后,能在命令行上指定很多的選項(xiàng),也可以以下面的方式來(lái)運(yùn)行GDB:
$ gdb 〈fname〉
當(dāng)用這種方式運(yùn)行GDB,能直接指定想要調(diào)試的程序。這將告訴GDB裝入名為fname的可執(zhí)行文件。可以參考GDB指南頁(yè)或在命令行上鍵入gdb -h得到一個(gè)有關(guān)選項(xiàng)說(shuō)明的簡(jiǎn)單列表。
為了使GDB正常工作,必須使程序在編譯時(shí)包含調(diào)試信息。調(diào)試信息包含程序里的每個(gè)變量類型和在可執(zhí)行文件里的地址映射以及源代碼的行號(hào)。GDB利用這些信息使源代碼和機(jī)器碼相關(guān)聯(lián)。
在編譯時(shí)用-g選項(xiàng)打開(kāi)調(diào)試選項(xiàng)。
GDB支持很多的命令能實(shí)現(xiàn)不同的功能。這些命令從簡(jiǎn)單的文件裝入到允許檢查所調(diào)用的堆棧內(nèi)容的復(fù)雜命令,表14-4列出了在用GDB調(diào)試時(shí)會(huì)用到的一些命令。
GDB支持很多與Unix shell程序一樣的命令編輯特征。能像在bash或tcsh里那樣按Tab鍵讓GDB幫你補(bǔ)齊一個(gè)惟一的命令,如果不惟一的話,GDB會(huì)列出所有匹配的命令。也能用光標(biāo)鍵上下翻動(dòng)歷史命令。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。