1. 程式人生 > >介紹下emacs+gdb除錯環境,可以實時跟蹤程式碼執行位置,提高工作效率

介紹下emacs+gdb除錯環境,可以實時跟蹤程式碼執行位置,提高工作效率

準備工作:

1.      安裝 emacs  解壓後configure --prefix=xxx; make; make install就行了

gdb除錯:

1.      寫一個gdbfile,就是把hcc xxx.c –v中包含cc1的那一行拷出來,放到檔案裡,形成一個gdb的指令碼,如

file cc1

b reload

r test.c -quiet -dumpbase test.c -auxbase test -O2 -version -o test.s

雖然不是必須的,但是有利於emacs裡啟動且方便以後復現這次除錯過程。

2.      啟動emacs,可以Alt + x

,輸入esh進入eshell,是個emacs下附帶的shellcd到剛才gdbfile所在的目錄。然後Alt + x,輸入gdb,預設顯示gdb --annotate=3,在後面補上-x gdbfile(即gdb --annotate=3 –x gdbfile)就行了。

Eshell可以執行絕大多數shell下的操作,所以基本不用退出emacs,可以在一個視窗下執行shell命令或編輯檔案或除錯程式(可以給eshell設定一個快捷鍵方便切換,我發的配置裡用的是Alt + 9)。但是不要在eshell裡執行build_hcc這樣的大動作,會很慢。可以Ctrl + z暫時退出來,或者用另外一個視窗

相關推薦

介紹emacs+gdb除錯環境可以實時跟蹤程式碼執行位置提高工作效率

準備工作: 1.      安裝 emacs  解壓後configure --prefix=xxx; make; make install就行了 gdb除錯: 1.      寫一個gdbfile,就是把hcc xxx.c –v中包含cc1的那一行拷出來,放到檔案裡,

Android環境GDB除錯

gdb是GNU開發的針對Linux/Unix環境下程式的除錯工具。為了節約目標系統的資源,gdb通常採用gdb+gdbserver的方式進行除錯。 在Android GDB除錯場景下,gdb執行在PC端,gdbserver執行在Android系統中。在實際的除錯過程中,PC端的gdb參照

Linux環境使用GDB除錯C程式

寫這篇部落格的目的是因為我剛剛用gdb解決了一個c語言中賦錯了值的問題,導致整個程式的執行結果是不正常的,這是我求助於gdb解決了這個問題,之前也用gdb這個神器解決過一些執行時的記憶體問題,比如說c程式中非常常見的segment error。這篇部落格為了對g

Linux使用gdb除錯C/C++程式

在筆者工作實踐中,使用gdb除錯C++程式和除錯C程式,他們稍有不同,下面是使用總結。 一、編譯選項 -g         生成除錯資訊 -gstabs+   以stabs格式生成除錯資訊,並且包含僅供gdb使用的額外除錯資訊生成除

linuxGDB除錯 詳細

  vim min.c #輸入min.c的內容 gcc min.c -o min -g #必須寫-g gdb -q min #除錯可執行程式 -q是為了阻止顯示版本資訊 l # list 顯示原始碼 一次10行 l # list 顯示原始碼 接著10行 l # list 顯示原始

WEB移動端開發中區域網內手機瀏覽器訪問電腦頁面實時檢視程式碼除錯結果

痛點:在進行移動端頁面開發時,經常需要用手機檢視開發的頁面效果。雖然瀏覽器自帶模擬器,但是各個手機相容問題除錯以及操作效果除錯還是需要上真機。 解決途徑: 1、將程式碼扔到伺服器,通過連線伺服器訪問頁面除錯 2、採用內網穿透,將自己的電腦當成伺服器主機,手機訪問電腦伺服器。之前我用過NA

嵌入式Linux--配置gdb除錯環境

gdb交叉除錯類似於網路瀏覽器,本地PC為客戶端,arm開發板為伺服器端,雙方都要統一編譯工具鏈,版本最好保持一致。 (百度百科)一般來說,GDB主要幫助你完成下面四個方面的功能: 1、啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。 2、可讓被除錯的程式在你所指定的調置的

linux使用gdb除錯崩潰丶死鎖例項

gdb是linux下一款功能強大的除錯工具,windows下對應的有windbg,下面舉例說明常見程式錯誤解決方法 1.gdb啟動 要想使用gdb除錯,編譯時指定-g選項加入除錯資訊,gdb可以啟動執

linux使用GDB除錯程式

現有一c原始檔“gdb-01.c”,下面用GDB除錯該程式。 /*gdb-01.c*/ #include<stdio.h> static int sum(int value); int main(int argc, char *argv[]

MACPhpStorm安裝除錯環境xdebug

今天下午一直在搗鼓如何用PhpStorm進行除錯,查找了許多資料,零零碎碎的,所以自己弄篇文章記錄一下步驟。 安裝xdebug 使用brew安裝xdebug,語法如下 brew install homebrew/php/php<version number>-xdebug brew instal

Vmware+gdb除錯Linux核心——工欲善其事必先利其器

今天我終於忍受不了qemu的低速跟不可理喻的各種bug,開始尋找新的除錯核心的方法。然後想到了Vmware,那麼成熟的虛擬機器怎麼可能除錯不了核心。於是嘗試了一番,發現結果非常的棒!所以立馬奮筆疾書,把這個方法記錄下來。          我們這裡主要分成幾個步驟:    

Windowslua+redis除錯環境搭建

Lua+Redis 斷點除錯環境搭建 windows環境,使用Redis,寫lua指令碼頭疼的問題之一不能對指令碼斷點除錯,google加上自己的摸索,終於搞定。 1、下載ZeroBraneStudio,我下載的是破解版(我自己為自己感到可恥,其實並不貴,百

gdb除錯core檔案快速定位core dump位置

core dump又叫核心轉儲, 當程式執行過程中發生異常, 程式異常退出時, 由操作系統把程式當前的記憶體狀況儲存在一個core檔案中, 叫core dump. (linux中如果記憶體越界會收到SIGSEGV訊號,然後就會core dump) 在程式執行的過程中,有的時

掌握這3個實用的Word技巧快速提高工作效率和加班說拜拜!

在日常工作中,我們經常會用到Word文件。你知道哪些關於Word的實用技巧呢?今天給大家分享3個非常實用的Word技巧,希望能夠幫助大家提高工作效率! 快速標記文字內容 按快捷鍵"Ctrl+H"彈出查詢和替換框,點選"查詢",在"查詢內容"框輸入標記內容即可。 具體操作如下: 快速建立各頁標題 先輸

LIVE555流媒體庫曝程式碼執行漏洞VLC、MPlayer等播放器均受影響

來自思科Talos團隊的安全研究人員Lilith Wyatt在LIVE555流媒體庫(LIVE555 Streaming Media)中發現了一個嚴重的任意程式碼執行漏洞,包括VLC和MPlayer在內的流行媒體播放器以及一些內嵌流媒體播放器的裝置都受其影響。 LIVE555 Streaming

一些巨集替換用法使程式碼更加精煉。總結了兩個一個foreach用來c++容器遍歷一個計算程式碼執行時間的。

一:#ifndef foreach #define foreach(container,it) \ for(typeof((container).begin()) it = (container).begin();it != (container).end() ;++it) #endif

20款有效提高工作效率的web前端開發工具推薦總有一款適合你

Rendera 如果你希望有個環境可以測試、瀏覽和體驗各種不同的 CSS/HTML 和 JavaScript 程式碼,Rendera 為你提供了實時的執行結果。類似RunJS。 Patternizer 從名字可看出該工具可以建立真正的調色盤,包括各種線條和條文,可編輯線寬、顏色、角

編寫一個程式啟動三個執行三個執行緒的名稱分別是 ABC; 每個執行緒將自己的名稱在螢幕上列印5遍列印順序是ABCABC...

設定標誌位flag 當flag==1時,列印A 當flag==2時,列印B 當flag==3時,列印C 用count控制列印的次數,題目要求列印5遍,即15個字元 這裡的用notifyAll()的原因:是要把其餘兩個全都喚醒,因為如果用notify

靜態塊程式碼執行順序

public class Main { public static void main(String[] args) { System.out.println("main start---------"); new B(); new A();

5個Excel實用技巧幫你大大提高工作效率

今天給大家分享5個Excel實用的小技巧,學會了可以幫助我們在日常工作中快速提高工作效率! 1.快速隱藏單元格資料 若是想對單元格中的某些資料隱藏,使用單元格自定義即可。 選中單元格資料,點選滑鼠右鍵選擇"設定單元格格式",點選"自定義",在"型別"一欄中輸入";;;"即可。 具體操作如下: 2.快