如何利用Emacs來(lái)調(diào)試C++程序
俗話說(shuō),Emacs是神的編輯器,而Vim是編輯器之神。高手程序員都是用這兩樣神器進(jìn)行開(kāi)發(fā)。本人覺(jué)得,Emacs之所以厲害,是因?yàn)樵S多在其他編輯器下必須用鼠標(biāo)點(diǎn)選很多步的操作,在Emacs下都可以通過(guò)鍵盤來(lái)完成。大大地節(jié)省了你在顯示器上找按鈕的時(shí)間。Emacs在Linux上運(yùn)行感覺(jué)比windows流暢些,用Emacs編輯程序時(shí),手基本不用離開(kāi)鍵盤,就可以完成所有的工作。那么今天就讓我們看看如何利用Emacs來(lái)調(diào)試C++程序。
一、安裝Emacs和GCC
下載地址:Emacs:http://www.gnu.org/software/emacs/
二、配置emacs和GCC
Emacs建議大家把顯示行號(hào)打開(kāi)。具體操作是:在C:\Users\maple\AppData\Roaming下有個(gè).emacs文件,打開(kāi)它,加入(global-linum-mode t)并保存,注意括號(hào)也要一并寫上。
GCC添加路徑到Path環(huán)境變量,確保在cmd下用g++命令能正確執(zhí)行。
三、寫程序,編輯
我們新建一個(gè)文件,然后用Emacs打開(kāi)(Emacs的操作方式有時(shí)間再介紹了,大家可以跟著里面自帶的教程學(xué)習(xí))。
我們先保存。然后利用Emacs調(diào)用GCC,按S-M-1
出現(xiàn)讓你輸入shell命令,在這就是控制臺(tái)命令啦。我們輸入g++ testdbg.cpp -g -o testdbg.exe
編譯正確。這時(shí)我們打開(kāi)Tools->GDB進(jìn)行調(diào)試,我們發(fā)現(xiàn),Emacs多了幾個(gè)按鈕。如下圖:
四、調(diào)試
1、設(shè)置斷點(diǎn)
輸入break 5,表示在第五行設(shè)置斷點(diǎn),我們發(fā)現(xiàn)左邊多了個(gè)小紅點(diǎn)。那就是斷點(diǎn)的位置。
2、運(yùn)行程序
輸入run執(zhí)行程序,程序執(zhí)行后停在斷點(diǎn)處。
3、單步執(zhí)行
輸入step能夠單步執(zhí)行,在GDB中,直接按回車能重復(fù)上一步的動(dòng)作。
4、打印變量
使用print 變量,能打印出當(dāng)前變量的值。
五、總結(jié)
使用Emacs,擺脫了各種IDE的束縛,能夠極快地進(jìn)行小模塊的開(kāi)發(fā),Emacs還帶有查看十六進(jìn)制文件的功能,在linux上,替代了winhex的工作,能進(jìn)行文件的比較,這些以后有時(shí)間再講到。GDB是GCC附加的一個(gè)功能強(qiáng)大的調(diào)試器,深受廣大程序員的喜愛(ài),其中關(guān)于GDB的資料,大家可以查查手冊(cè)。
相關(guān)文章
詳解C語(yǔ)言解決經(jīng)典問(wèn)題之兔子產(chǎn)子
有一對(duì)兔子,從出生后的第 3 個(gè)月起每個(gè)月都生一對(duì)兔子。小兔子長(zhǎng)到第 3 個(gè)月后每個(gè)月又生一對(duì)兔子,假設(shè)所有的兔子都不死,問(wèn) 30 個(gè)月內(nèi)每個(gè)月的兔子總數(shù)為多少?本文將用C語(yǔ)言解決這一經(jīng)典問(wèn)題,需要的可以參考一下2022-03-03C++ 壓縮文件及文件夾方法 使用zlib開(kāi)源庫(kù)
下面小編就為大家分享一篇C++ 壓縮文件及文件夾方法 使用zlib開(kāi)源庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之堆、堆排序的分析及實(shí)現(xiàn)
堆是一個(gè)近似完全二叉樹的結(jié)構(gòu),并同時(shí)滿足堆積的性質(zhì),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之堆、堆排序的分析及實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04C++實(shí)現(xiàn)LeetCode(81.在旋轉(zhuǎn)有序數(shù)組中搜索之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(81.在旋轉(zhuǎn)有序數(shù)組中搜索之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++實(shí)現(xiàn)查詢本機(jī)信息的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)查詢本機(jī)信息,并且進(jìn)行上報(bào),文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2023-05-05