專案中用到的dbx命令的簡單使用方法

2021-04-12 21:04:27 字數 2802 閱讀 4609

dbx是unix下普遍的原始碼除錯工具, 掌握好了dbx的使用,

無疑象增添了unix下程式設計的一把利器研究了一下午dbx的

連機文件,發現dbx很是簡單易用現在簡單介紹一下dbx的

使用方法,讓更多的朋友免去獨自研究的苦楚dbx主要用來

除錯用f77或cc等編譯工具生成的fortran和c語言的源**

當然該程式必須在除錯過程中用-g引數包含入除錯資訊,

比方說我在unix下編寫了乙個hello.c的程式:

void hello();

main()

void hello()

先用cc -o helloexe -g hello.c編譯生成帶除錯資訊的helloexe檔案

然後用dbx helloexe來除錯該檔案

顯示dbx)這個dbx下除錯的提示符

現在還不處在除錯狀態下,需要首先進入除錯狀態,

這樣泥需要先確定從**開始第一次中斷,以便以後的跟蹤除錯

這裡從第7行開始除錯,用命令:

dbx)stop at 7

設定好斷點。

用如下命令開始執行;

dbx)run

這時程式執行到第7行停止下來,

並顯示下一行將要執行的程式

7: i=i+1

這時,你可以用:

dbx)print i命令來檢視i變數的值顯示1

或者用printf "%d",i來顯示用c語言格式的輸出。(aix下沒有printf命令)

對以後比較負責的陣列什麼的,用

dbx)duel i方式可能更加顯示的方便。

以後泥可以用

dbx)step (step相當於trace into,就是可以進入執行緒內部,比如本例子中hello()模

塊)或者

dbx)next (next不進入hello()模組內部)

來執行下一行程式。

用dbx)cont 命令可以直接執行到結束。

dbx中控制命令多多,功能十分強大的。

檢視原始碼可以用

dbx)list begin,end

就顯示hello.c檔案中從begin到end行的所有程式,並且配上了行號。

用dbx)file 可以改變泥要檢視的原始碼檔名稱.

下面是檢視了dbx的man手冊後對一些常用/使用命令的中文說明

這些命令對普通的除錯已經足夠了,一些多執行緒的除錯命令就不加以介紹了

dbx使用指南:

1:實用命令

quit/q 退出

q 退出

run arg1 arg2 ... 用引數執行現有程序

r 用上次的引數再次執行

stop at 在第line行設斷點

stop at 在過程proc被呼叫處設斷點

cont 繼續執行到記號(斷點或其他)處

return 執行完目前的程序返回

print ... 列印表示式的值

printf "string",exp,... 用c語言的格式列印結果

where 列印當前除錯狀態,包括當前程序等資訊

func 看當前執行程序名/移動到呼叫proc程序的母程序處

file 檢視的檔案切換到file檔案處

list ,從file檔案中列出從exp1行到exp2行

list :列出file檔案中從exp行開始的int行

whatis 顯示變數的型別

sh 嶄時進入sh狀態

sh 執行一shell命令

2:常用命令說明

alias name "string" 把string內容定義為一縮略語name

help section 尋找某指令的幫助

playback input 從file中調入除錯命令流

playback output 輸出file中的除錯命令流

record input 把除錯過程輸出到file中

record output 把命令的執行輸出儲存到file中

history 顯示歷史命令

hed 編輯歷史除錯命令

!執行歷史命令流中第int個命令

!-執行歷史命令中倒數第int個命令

!執行歷史命令流中以string打頭的命令

!! 重複上乙個命令

command;command ... 多除錯命令間用";"隔開

step 向前追蹤步,進入執行緒

next 向前追蹤步,不進入執行緒

delete all 清所有斷點

listobj 列出目前使用的obj單元

listregions 列出被用到的記憶體區

enable /disable 恢復/禁用號斷點

catch 顯示所有碰到的記號

cont at 執行直到line行

intercept all 在所有例外處都中斷

bx chat 在所有出現char打頭的異常處中斷

kill 殺死pid執行緒

goto 從line行開始執行

stop 當var產生變化時中斷

stop 當進入proc程序時中斷

stop [var] [at ] if 條件中斷

trace 當var變化時輸出其原值和新值

trace 當進入程序時列印出母程序和引數

when if 當條件為真時執行命令列

when at [if ] 在遇到line行時如果條件為真執行命令

列duel 一種比較好的變數輸出方式

printregs 輸出所有暫存器的值

status 當前狀態

/向下尋找file中的string字串

?向上尋找file中的string字串

set 設定或顯示系統引數值

git 專案中用到的命令

1 git status 檢視修改內容 2 git add 提交修改內容到快取 3 git commit m 修改內容 用來提交 到倉庫並顯示修改內容 4 git fetch origin develop git拉取同步遠端 5 git rebase orgin develop git同步本地 可能...

專案中用到的python

import scipy.io as scio 資料輸入輸出,載入和儲存matlab檔案,例如下面 train norm scio.loadmat train norm file 這裡面包含兩個矩陣 train datan train labeln test norm scio.loadmat te...

專案中用到的各種註解

repository 作用於持久層 autowired 自動注入 qualifier sessionfactory 指定自動注入裡面的哪個屬性 suppresswarnings 告訴它對被批註的 元素內部的某些警告保持靜默 repository dao 實現dao訪問 component 把普通po...