1. 程式人生 > >Mac下用GDB工具進行程式除錯

Mac下用GDB工具進行程式除錯

GDB是GNU開源組織釋出的一個強大的UNIX下的程式除錯工具。

一般來說,GDB主要幫助你完成下面四個方面的功能[百度百科]

  1. 啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。
  2. 可讓被除錯的程式在你所指定的調置的斷點處停住。(斷點可以是條件表示式)
  3. 當程式被停住時,可以檢查此時你的程式中所發生的事。
  4. 你可以改變你的程式,將一個BUG產生的影響修正從而測試其他BUG。

1.GDB的安裝

homebrew安裝方法:

brew install gdb

2.解決GDB在Mac系統下無法除錯的問題

gdb初次安裝完成執行時,會出現下面類似的錯誤:

(gdb) run
Starting program: /usr/local/bin/fabnacci
Unable to find
Mach task port for process-id 23330: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))

這是由Mac系統Darwin核心的特殊許可權所限,解決方案是建立證書籤名,具體方法參考解決GDB在Mac下不能除錯的問題

3.解決GDB的除錯失敗問題

經過上一步的操作,解決了gdb的簽名問題,但是還會遇到下面的錯誤:

(gdb) run
Starting program: /usr/local/bin/fabnacci
During startup program terminated with signal ?, Unknown signal.

解決方法很簡單,執行

set startup-with-shell off

即可,方便起見可以將此命令寫入到個人路徑的.gdbinit檔案中,如果沒有可以新建。
(該部分參考了gdb偵錯程式除錯失敗?

4.GDB除錯的命令

參考這裡

相關推薦

MacGDB工具進行程式除錯

GDB是GNU開源組織釋出的一個強大的UNIX下的程式除錯工具。 一般來說,GDB主要幫助你完成下面四個方面的功能[百度百科]: 啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。 可讓被除錯的程式在你所指定的調置的斷點處停住。(斷點可以是條件表示

IDEA 14在MAC如何對tomcat進行遠端除錯

在開發過程中,有時需要進行遠端除錯,使用IDEA如何進行遠端除錯呢,其實很簡單,首先tomcat需要開啟遠端除錯,如何開啟呢?參考另一篇文章。 然後在IDEA中設定如下: 1、開啟配置頁面 2、新增遠端除錯配置 3、進行引數配置 其中Host為遠端伺服器的地址,當然

linuxgdb實現程式宕機時自動列印呼叫堆疊

linux下程式執行幾天莫名其妙宕機了,不能還原現場,找到宕機原因就很無語了。 一個解決辦法是使用core檔案,但是對於大型伺服器檔案,動輒幾百M的core檔案是在有點傷不起,於是想到程式宕機時自動列印呼叫堆疊。簡單實用。

macZotero + 外掛 + 堅果雲 配置論文管理工具

個人過去一直用EndNote,但是發現它對於論文的資訊同步不是很好,總是提示我連線不上,每次新增論文還要下載論文->下載endnote格式的metadata檔案->attach,有師兄推薦了

什麽情況+運算符進行字符串連接比調StringBuffer/StringBuilder對象的append方法連接字符串性能更好?

字符串拼接 build 字符串 字符串連接 操作 重新 運算 運算符 對象存儲 String一旦賦值或實例化後就不可更改,如果賦予新值將會重新開辟內存地址進行存儲。而StringBuffer類使用append和insert等方法改變字符串值時只是在原有對象存儲的內存地址上進

mac qt 搭建 opencv

qt5.8 opencv3.4.1 ma系統 mac qt 庫 5.8 ide 4.21 opencv 3.4.1 根據網上搭建時老是報這個錯解決方案 報那個錯的原因就幾個 1.沒有實現函數 這個可以排除。2.沒有包含庫 對就是這個 但不是只包含網上說的那幾個 得全包含(反正包含到不報錯為止)macx{I

Macselenium啟動Chrome瀏覽器問題解決

chrome瀏覽器 mac sele 解決方法 之前 med from nbsp bdr 之前在mac的Python shell中,無法通過driver=webdriver.Chrome()啟動谷歌瀏覽器。現解決方法如下: (前提:Chromedriver在/usr/loc

Macconda安裝tensorflow

1. 下載並安裝 Anaconda。 2. 通過呼叫以下命令建立名為 tensorflow 的 conda 環境: $ conda create -n tensorflow python=3.6 3. 通過發出以下命令啟用 conda 環境:   

mac vmware fusion 安裝centos

下載centos  下載地址:https://www.centos.org/download/ 這裡我下載的第一個DVD iso 開啟VMware fusion的虛擬機器資源庫,點選新增-》新建,如果是安裝後首次使用虛擬機器,跳過這一步。 選擇建立自定義虛擬機器

Mac影象標註工具labelImg的安裝

目標檢測時需要對訓練資料進行標註,標註工具為labelImg,其在Mac下的安裝教程如下: # Install PyQt4, it must be this version brew install cartr/qt4/pyqt brew install libxml2 p

MCSA / Windows Server 2016 MAP工具進行IT資產評估I和虛擬化部署準備

技術分享 f2c 部署 image b2b map ges term 17. MCSA / Windows Server 2016 用MAP工具進行IT資產評估I和虛擬化部署準備

MFCCFile類進行檔案的寫入

因為CFile類預設是英文寫入檔案,所以如果不設定的話是不會在檔案中寫入中文的。 需要進行以下設定: //需加標頭檔案 #include <locale>        //確保能讀寫中文     TCHAR* old_locale = _tcsdup(

Linux火焰圖進行效能分析

1 火焰圖簡介 很多人感冒發燒的時候, 往往會模仿神農氏嘗百草的路子: 先嚐嘗抗病毒的藥, 再試試抗細菌的藥, 甭管家裡有什麼藥挨個試, 什麼中藥西藥, 瞎貓總會碰上死耗子, 如此做法自然是不可取的, 正確的做法應該是去醫院驗個血, 確診後再對症下藥. 讓我們回

關於mac 終端控制Linux(CentOS) 伺服器

開啟本地終端: 輸入     上面的形式命令: sudo  su   enter鍵之後 輸入自己的密碼 ssh [email protected]虛擬機器的IP地址, 在虛擬機器裡開啟終端 輸入ifconfig

macnginx配置反向代理域名

2018年01月18日 20:23:26 zsnpromsie 閱讀數:1034 標籤: vue nginx

Mac抓包工具Fiddler的安裝

Fiddler簡介 Fiddler是一個http協議除錯代理工具,它能夠記錄並檢查所有你的電腦和網際網路之間的http通訊,設定斷點,檢視所有的“進出”Fiddler的資料(指cookie,html,js,css等檔案)。 Fiddler 要比其他的網路偵錯程式要更加簡單,因為它不僅僅暴露h

java~mac的終端工具oh-my-zsh

mac作業系統類似於linux,很多命令都是相容的,確實挺好用,對於java,docker,git等開發來說,終端命令列是非常必要的工具,這裡我介紹一下item2+oh-my-zsh的安裝與使用。 安裝iTem2 首先我們下載的 iTem2 這個軟體,比Mac自帶的終端更加強大。直接官網 http://i

怎麼對輸入引數的main(int argc , char *argv)函式進行程式除錯

       當函式使用(int argc , char *argv)來輸入引數時,我們一般都是使用cmd對函式進行呼叫,然後在函式名後面輸入函式引數。        如果相對函式進行除錯,怎麼使用VS2010輸入引數呢,下面我們介紹設定的步奏:        1.Proj

在Centosc++編寫簡單程式並輸出

小白我使用的是VMware-Workstation虛擬機器建立的centos。苦於無法用來學習(裝逼),抽空學習瞭如何在linux系統下程式設計。有不對的地方歡迎各位大佬指出,謝謝。首先開啟centos

Mac版本控制工具SourceTree的使用

一、什麼是SourceTree? SourceTree 是 Windows 和Mac OS X 下免費的 Git 和 Hg 客戶端,擁有視覺化介面,容易上手操作。同時它也是Mercurial和Subversion版本控制系統工具。支援建立、提交、clone、p