Linux下的程序調試經驗總結

首先千萬不要牴觸,這個東西就是看起來麻煩,但是經常用的命令其實也就那麼幾個,今天我們以我工作中碰到的實際例子爲列,進行簡單的操作說明.

  1. 在某個固定的文件中添加斷點
  2. 定位到某個斷點,逐行往下移動
  3. 進入到某個函數,然後再函數內移動推出
  4. 打印變量和類的信息
  5. 顯示調用堆棧

gdb調試準備工作

安裝gdb
apt-get install gdb

調試之前請在編譯選項中增加-g選項的支持:
gcc -g
g++ -g

啓動應用程序
比如我的應用程序是 mediaserver

gdb mediaserver

在這裏插入圖片描述
注意這個時候,應用程序還沒有開始啓動,只是告訴gdb調試器,我要調試這個應用程序.

  1. 在某個固定的文件中添加斷點

在啓動之前我們需要再添加我們想要設置的斷點,通過如下命令添加:

break MultiFramedRTPSource.cpp:495

在這裏插入圖片描述

當顯示出Breakpoint 1 … pending 的時候,那麼就代表斷點已經添加了,接下來啓動.

run 表示啓動要調試的應用程序.

run

在這裏插入圖片描述

  • 定位到某個斷點,逐行往下移動

s(step) 執行下一行語句,如果有函數調用則進入到函數中
n(next) 執行下一行語句,不主動進入函數
finish 一直執行到當前函數返回,即跳出當前函數,執行其調用函數

程序啓動後,運行到我們的斷點位置後,這個時候程序會停止到我們所設置的斷點處,請看圖:
在這裏插入圖片描述
這個時候我們就斷點到了495行了。

  • n 把斷點往下移動

在這裏插入圖片描述

看這裏,我通過n把代碼依次的往下進行了移動,十分的簡潔明瞭.

  • bt 顯示的調用堆棧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章