【轉】dbx用法講解

http://blog.chinaunix.net/uid-25544300-id-328735.htmlhtml

dbx 命令 

用途 
提供了一個調試和運行程序的環境。 

語法 
dbx [ -a ProcessID ] [ -c CommandFile ] [ -d NestingDepth ] [ -I Directory ] [ -E DebugEnvironment ] [ -p oldpath=newpath:...| pathfile ] [ -k ] [ -u ] [ -F ] [ -r ] [ -x ] [ ObjectFile [ CoreFile ] ] 

描述 
dbx 命令爲 C、C++、Pascal 和 FORTRAN 語言程序提供了一個符號性的調試程序,容許您按照下面的內容執行操做: 

檢驗對象和核心文件。 
爲程序運行提供一個控制環境。 
在選中的語句處設置斷點或單步執行程序。 
使用符號變量進行調試並將它們以正確的格式顯示出來。 
ObjectFile 參數是一個由編譯器產生的目標(可執行)文件。在編譯您的程序時,使用 -g(生成符號表)標誌產生 dbx 命令須要的信息。 


注:cc 命令的 -g 標誌應該在對象文件進行編譯時使用。若是沒有使用 -g 標誌或者若是符號引用被 strip 命令從 xcoff 文件中刪除了,則 dbx 命令的符號性能將受到限制。 
若是沒有指定 -c 標誌,dbx 命令將會在用戶的 $HOME 目錄中檢查 .dbxinit 文件。而後它在用戶當前目錄中檢查 .dbxinit 文件。若是在當前目錄中存在一個 .dbxinit文件,該文件將覆蓋用戶的 $HOME 目錄中的 .dbxinit 文件。若是在發現了 .dbxinit 文件存在於用戶的 $HOME 目錄中或者當前目錄中,該文件的子命令將在調試部分開始時運行。使用編輯器建立一個 .dbxinit 文件。 

若是沒有指定 ObjectFile,那麼 dbx 將詢問要進行檢查的目標文件的名稱。缺省值是 a.out。若是當前目錄中存在 core 文件或者指定了 CoreFile 參數,那麼 dbx 將報告程序發生錯誤的位置。保留在覈心映像中的變量、寄存器和內存能夠被檢查直到開始執行ObjectFile。那時 dbx 調試程序提示輸入命令。 

表達式句柄 
dbx 程序能夠顯示各類各樣的表達式。您能夠在 dbx 調試程序中使用 C 和 Pascal 語法的公共子集和一些 FORTRAN 擴展的子集來指定表達式。 

如下運算符在調試程序中是有效的: 

*(星號)或者 ^ (脫字符號) 表示正在取消引用間接尋址或者指針。 
[ ](方括號)或者( )(圓括號) 表示數組表達式的下標。 
. (句點) 經過指針和結構來使用該字段引用運算符。這將使得 C 運算符 ->(箭頭)變得沒有必要,儘管它仍容許使用。 
&(與符號) 得到變量的地址。 
.. (兩個句點) 在指定數組子部分時將上下界分開。例如:n[1..4]。 

如下類型的運算在調試程序的表達式中是有效的: 

代數運算 =、-、*、/(浮點運算的除法)、div(整數運算的除法)、mod 和 exp(乘冪運算)。 
按位運算 -, I, bitand, xor, ~, << 和 >> 
邏輯運算 or、and、not、II 和 && 
比較運算 <、>、<=、>=、< > 或 !=、= 或 == 
其它 (類型名),sizeof 

邏輯和比較表達式在 stop 和 trace 中做爲條件使用的。 

檢驗表達式類型。您能夠經過重命名或者重載運算符的方式重設一個表達式類型。三種重命名的格式分別是:類型名(表達式),表達式 |類型名以及 (類型名)表達式。如下是一個示例,其中 x 變量是一個值爲 97 的整數: 


(dbx) print x 
97 
(dbx) print char (x), x \ char, (char) x, x 
'a' 'a' 'a' 97命令行編輯 
dbx 命令提供一種命令行編輯功能相似於由 Korn Shell 提供的功能。vi 模式提供 相似 vi 的編輯功能,而 emacs 模式賦予您相似於 emacs 的控制功能。 

這些功能能夠經過使用 dbx 子命令 set -o 或者 set edit 來開啓。要打開 vi 風格的命令行編輯,您能夠輸入子命令 set edit vi 或者 set -o vi。 

您也可使用 EDITOR 環境變量來設置編輯模式。 

dbx 命令將保存輸入到歷史文件 .dbxhistory 當中的命令。若是沒有設置 DBXHISTFILE 環境變量,使用的歷史文件是 $HOME/.dbxhistory。 

按照缺省值,dbx 將保存最近輸入的 128 個命令。DBXHISTSIZE 環境變量能夠歷來增長這一限制。
標誌 

-a ProcessID 將調試程序和正在運行的進程鏈接起來。爲了鏈接調試程序,您須要擁有對該進程使用 kill 命令的權限。使用 ps 命令來決定進程的 ID。若是您得到許可,dbx 程序中斷該進程,決定目標文件的完整名稱,讀入符號信息和提示輸入命令。 
-c CommandFile 讀入標準輸入以前,在文件中運行 dbx 子命令。$HOME 目錄中指定的文件將首先被處理;而後處理當前目錄中的文件。當前目錄中的命令文件將會覆蓋 $HOME 目錄中的命令文件。若是指定的文件既不存在於 $HOME 目錄也不存在於當前目錄,將會顯示警告消息。source 子命令能夠在 dbx 程序運行後使用。 
-d NestingDepth 設置程序塊的嵌套限制。缺省的嵌套深度限制爲 25。 
-E DebugEnvironment 指定調試程序的環境變量。 
-p oldpath=newpath:...| pathfile 以 oldpath=newpath 的格式在檢查覈心文件時指定替換的庫的路徑。oldpath 指定了將被替換的值(存儲在覈心文件中)而 newpath 指定了將要替換的新的值。這些多是所有或者部分的,絕對路徑或者相對路徑。能夠指定若干個替換,它們之間用冒號隔開。相反 -p 標誌能夠指定文件名,映射之前讀入的描述格式。每行中只容許有一個映射從文件中讀出。 
-F 能夠用來關閉緩慢讀入模式並使 dbx 命令在啓動時就讀入所有符號。缺省狀況下,緩慢讀入模式是打開的:它在 dbx 會話初始化時讀入須要的符號表信息。。在該模式下,dbx 將不會讀入那些符號信息還沒有被讀入的變量和類型。所以,諸如 whereis i 等命令並不列出在全部函數中的變量 i 的所有實例。 
-I Directory (大寫 i)將 Directory 變量指定的目錄包含到搜索源文件目錄列表中。搜索源文件的缺省目錄爲: 
文件編譯時該源文件所在的目錄。只有編譯器設置了對象中的源路徑時才能搜索目錄。 
當前目錄。 
當前程序所在的目錄。 

-k 映射內存地址;這對於內核調試是很是有用的。 
-r 當即運行對象文件。若是它成功結束,dbx 調試程序將會退出。不然,將會進入調試程序並報告中斷的緣由。 

注意:除非指定了 -r,dbx 命令將會提示用戶並等待命令輸入。 
-u 讓 dbx 命令爲文件名加上 @ (at 符號) 前綴。該標誌減小符號名混淆的可能性。 
-x 防止 dbx 命令跳過來自於 FORTRAN 源代碼的 _(下劃線)字符。該符號容許 dbx 在符號之間區別哪些除了下劃線之外都是相同的,例如 *** 和***_。 

示例 
下列示例解釋如何在啓動 dbx 調試程序時同時啓動一個進程。本例使用了一個名爲 samp.c 的程序。該 C 程序首先通過 -g 標誌的編譯生成一個包含符號列表引用的目標文件。在此狀況下,該程序命名爲:samp: 

$ cc -g samp.c -o sampsamp 程序運行後,操做系統會報告一個總線錯誤並將核心映像寫入到您當前的工做目錄當中,以下所示: 

$ samp 
Bus Error - core dumped要肯定發生錯誤的位置,請輸入: 

$ dbx samp系統將會返回以下信息: 

dbx version 3.1 
Type 'help' for help. 
reading symbolic information . . . [ 
using memory image in core] 
25 x[i] = 0; 
(dbx) quit該示例解釋瞭如何將 dbx 鏈接到進程當中去。該示例使用了以下程序 looper.c: 

main() 

int i,x[10]; 

for (i = 0; i < 10;); 
}該程序將不會停止由於 i 不會增長。使用 -g 標誌編譯 looper.c 獲得符號調試能力: 

$ cc -g looper.c -o looper在命令行中運行 looper 並執行如下步驟就會在它運行的時候將 dbx 鏈接到程序中去: 

要將 dbx 鏈接到 looper,您必須肯定進程的 ID。若是您沒有運行 looper 做爲後臺程序,您必須啓動另一個 Xwindow 窗口。在該 Xwindow 窗口中,輸入: 

ps -u UserID其中 UserID 是您的登陸標識。全部屬於您的活動的進程將會顯示以下: 

PID TTY TIME COMMAND 
68 console 0:04 sh 
467 lft3 10:48 looper在該示例中和 looper 相關的進程 ID 是 467。 

要將 dbx 鏈接到 looper中,請輸入: 

$ dbx -a 467系統將返回以下的信息: 


Waiting to attach to process 467 . . . 
Successfully attached to /tmp/looper. 
dbx is initializing 
Type 'help' for help. 
reading symbolic information . . . 

attached in main at line 5 
5 for (i = 0; i < 10;); 
(dbx) 如今您能夠查詢並調試進程如同該程序最初就是由 dbx 來啓動的。 

要將目錄添加到搜索可執行文件 objefile 的源文件的目錄清單中,能夠輸入: 

$dbx -I /home/user/src -I /home/group/src 
objfileuse 子命令能夠在 dbx 啓動以後用來實現此功能。use 命令從新設置目錄清單而 -I 標誌則向清單中添加目錄。 

要使用 -r 標誌,輸入: 

$ dbx -r samp 系統將會返回以下信息: 

Entering debug program . . . 
dbx version 3.1 
Type 'help' for help. 
reading symbolic information . . . 
bus error in main at line 25 
25 x[i] = 0; 
(dbx) quit-r 標誌容許您在儘管沒有設置核心映像的狀況下在內存中檢查您的進程的狀態。 

要指定調試程序的環境變量,輸入: 

dbx -E LIBPATH=/home/user/lib -E LANG=Ja_JP objfiledbx 子命令
注意:這些子命令只能在運行 dbx 調試程序時使用。 
/ 在當前源文件中向前搜索某種模式。 
? 在當前源文件中向後搜索某種模式。 
alias(別名) 建立 dbx 子命令的別名。 
assign(賦值) 爲一個變量賦值。 
attribute(屬性) 顯示全部或者選中屬性對象的信息。 
call(調用) 運行與指定的過程或函數相關的對象代碼。 
case(格式) 修改 dbx 調試程序解釋符號的方式。 
catch(捕捉) 在一個信號送到應用程序以前啓動捕獲這個信號。 
clear(清除) 刪除全部源指定行的中止線。 
cleari 除去地址中全部的斷點。 
condition(條件) 顯示所有或者選中的條件變量的信息。 
cont 從當前中止點繼續應用程序的執行直到程序終止或者遇到下一個斷點。 
delete(刪除) 刪除與指定事件數對應的跟蹤和中止線。 
detach(拆分) 繼續應用程序的執行並退出調試程序。 
display memory(顯示內存) 顯示內存中的內容。 
down(降下) 將當前函數在堆棧中向下移動。 
dump(轉存) 顯示指定過程當中的變量的名稱和值。 
edit(編輯) 啓動編輯器編輯指定文件。 
file(文件) 將當前源文件修改爲指定的文件。 
func(函數) 將當前函數修改爲指定的過程或者函數。 
goto(跳轉到) 使指定行成爲下一個運行的行。 
gotoi 修改程序計數器地址。 
help(幫助) 顯示 dbx 子命令或主題的幫助信息。 
ignore(忽略) 在一個信號送到應用程序以前中止捕獲這個信號。 
list(列表) 顯示當前源文件的行。 
listi 列出應用程序的指令清單。 
map(映射) 顯示關於應用程序裝入特徵的信息。 
move(移動) 跳到下一行並顯示。 
multproc(多線程) 啓用或禁用多線程調試。 
mutex(互斥) 顯示所有或者選中的互斥信息。 
next(下一個) 運行應用程序直到下一個源程序行。 
nexti 運行應用程序直到下一個機器指令。 
print(打印) 打印表達式的值或運行一個過程並打印過程的返回代碼。 
prompt(提示符) 修改 dbx 命令提示符。 
quit(退出) 中止 dbx 調試程序。 
registers(寄存器) 顯示全部通用寄存器、系統控制寄存器、浮點寄存器和當前指令寄存器的值。 
rerun(從新運行) 按照之前設置的參數開始運行應用程序。 
return(返回) 繼續應用程序的運行直到達到返回一個指定的過程。 
rwlock 顯示 rwlocks 的信息。 
run(運行) 開始運行一個應用程序。 
screen(屏幕) 打開一個 Xwindow 做爲 dbx 命令的交互。 
set(設置) 爲 dbx 調試程序變量定義一個值。 
sh 傳遞命令到 shell 去運行。 
skip(跳過) 從當前的中止處繼續運行應用程序。 
source(源) 從文件中讀入 dbx 子命令。 
status(狀態) 顯示活動的跟蹤和中止子命令。 
step(單步) 運行一個源命令行。 
stepi 運行一個機器指令。 
stophwp 設置一個硬件的觀察點中止。 
stop(中止) 中止運行應用程序。 
stopi 在指定位置設置中止點。 
thread(線程) 顯示和控制線程。 
trace(跟蹤) 打印跟蹤信息。 
tracehwp 設置硬件觀察點跟蹤。 
tracei 打開跟蹤。 
unalias(取消別名) 刪除別名。 
unset(取消設置) 刪除一個變量。 
up(上升) 將當前函數在堆棧中向上移動。 
use(使用) 設置在搜索源文件時要搜索的目錄列表。 
whatis 顯示應用程序組件的聲明。 
where 顯示活動過程和函數的清單。 
whereis 顯示全部名字匹配指定標識符的符號的全限定。 
which 顯示給定標識符的全限定。 

/ 子命令 

/ [ RegularExpression [ / ] ] 

/ 子命令在當前源文件中向前搜索由 RegularExpression 參數指定的模式。不帶參數輸入 / 子命令將會使 dbx 命令向前搜索之前的正則表達式。搜索將會在文件的結尾折返。 

示例 
要向前搜索當前源文件中 12 這個數字,請輸入: 

/ 12要重複之前的搜索,請輸入: 

/請參閱 ?(搜索)子命令和 regcmp 子例程。 

? 子命令 

? [ RegularExpression [ ? ] ] 

? 子命令在當前源文件中向後搜索由 RegularExpression 參數指定的模式。不帶參數輸入 ? 子命令將會使 dbx 命令向後搜索之前的正則表達式。搜索將會在文件的結尾折返。 

示例 
要向後搜索當前源文件中的 z 字符,請輸入: 

?z要重複之前的搜索,請輸入: 

?參見 / (搜索)子命令和 regcmp 子例程。 

alias 子命令 

alias [ Name [ [ (Arglist) ] String | Subcommand ] ] 

alias 子命令爲 dbx 子命令建立別名。Name 參數是要建立的別名。String 參數是 dbx 子命令的序列,在執行完該子命令後能夠經過 Name 引用這些序列。若是 alias 子命令沒有指定參數,它將顯示全部當前的別名。 

示例 
要用 rr 替換 rerun,請輸入: 

alias rr rerun要在命令行輸入 printandstep 時運行 print n 和 step 兩個子命令,輸入: 

alias printandstep "print n; step"alias 子命令也能夠用做一個有限的宏工具。例如: 

(dbx) alias px(n) "set $hexints; print n; unset $hexints" 
(dbx) alias a(x,y) "print symname[x]->symvalue._n_n.name.Id[y]" 
(dbx) px(126) 
0x7e在本示例中,別名 px 打印了一個十六進制的值而不會永久影響到調試環境。
assign 子命令 

assign Variable =Expression 

assign 子命令分配由 Expression 參數指定的值到 Variable 參數指定的變量當中去。 

示例 
要將數值 5 分配到 x 變量中,請輸入: 

assign x = 5要將變量 y 的值分配到變量 x 中,請輸入: 

assign x = y要將字符值 'z' 分配到變量 z 中,請輸入: 

assign z = 'z'要將布爾值 false 分配到邏輯類型變量 B 中,請輸入: 

assign B = false要將字符串 "Hello World" 分配到字符指針 Y 中,請輸入: 

assign Y = "Hello World"要禁用類型檢查,將 dbx 調試程序變量 $unsafeassign 進行設置,輸入: 

set $unsafeassign參見 Displaying and Modifying Variables。 

attribute 子命令 

attribute [ AttributeNumber ... ] 

attribute 子命令顯示關於 AttributeNumber 參數定義的用戶線程、互斥或者條件屬性對象的相關信息。若是沒有指定參數,將會列出全部的屬性對象。 

對於列出的每一個屬性對象,將會顯示以下信息: 

attr 按照 $aAttributeNumber 格式指出屬性對象的符號名。 
obj_addr 指出屬性對象的地址。 
type 指出屬性對象的類型;對於用戶線程、互斥以及條件變量的類型分別是 thr、mutex 或者 cond。 
state 指出屬性對象的狀態。該狀態多是 valid 或者 inval。 
stack 指出一個線程屬性對象的堆棧大小屬性。 
scope 指出線程屬性對象的做用域屬性。這將決定線程的爭用域並定義必須爭用進程資源的線程的集合。對於系統或者進程爭用域,做用域的值能夠是 sys 或者 pro。 
prio 指出線程屬性對象的優先級屬性。 
sched 指出一個線程屬性對象的調度策略屬性。該屬性控制了調度策略,可選的值爲 fifo、rr(循環法)或者 other。 
p-shar 指定互斥或者條件屬性對象的進程共享屬性。若是能夠由不一樣進程的線程訪問,該互斥或者條件是進程共享的。該屬性值能夠是 yes 或者 no。 
protocol 指出互斥的協議屬性。該屬性決定了保持線程優先級互斥的做用。可選的值有 no_prio、prio 或者 protect。 


注意: 
dbx 調試程序的 print 子命令能夠識別符號屬性名稱並能夠用來顯示相應對象的狀態。 
可用的屬性取決於 POSIX 選項的實現。 
示例 
要列出全部的屬性的信息,請輸入: 

attribute輸出相似於: 

attr obj_addr type state stack scope prio 
sched p-shar 
$a1 0x200035c8 mutex valid no 
$a2 0x20003628 cond valid no 
$a3 0x200037c8 thr valid 57344 sys 126 other 
$a4 0x200050f8 thr valid 57344 pro 126 other 
要列出屬性 1 和 3 的信息,請輸入: 

attribute 1 3 
輸出相似於: 

attr obj_addr type state stack scope prio 
sched p-shar 
$a1 0x200035c8 mutex valid no 
$a3 0x200037c8 thr valid 57344 sys 126 other 
參見 dbx 命令中 condition 子命令、mutex 子命令、 print 子命令和 thread 子命令。 

另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Creating Threads、Using Mutexes 和 Using Condition Variables。 

call 子命令 

call Procedure ( [ Parameters ] ) 

call 子命令運行由 Procedure 參數指定的過程。返回代碼不會打印出來。若是指定了參數,它們將傳給正在運行的過程。 

例子 
運行 dbx 時要調用一個命令,請輸入: 


(dbx) call printf("hello") 
helloprintf 成功返回。 

case 子命令 

case [ default | mixed | lower | upper ] 

case 子命令修改 dbx 調試程序解釋符號的方式。缺省的符號處理視當前使用的語言而定。若是當前的語言是 C、C++ 或者沒有定義,這些符號將不會合並;若是當前的語言是 FORTRAN 或者 Pascal,這些符號就會合併成小寫格式。若是符號須要使用與當前語言不一致的方法解釋,則使用該子命令。 

不帶參數輸入 case 子命令將會顯示當前的 case 模式。 

標誌 

default 隨當前語言變化。 
mixed 按實際顯示的狀況解釋符號。 
lower 按小寫來解釋符號。 
upper 按大寫來解釋符號。 

示例 
要顯示當前的大小寫模式,請輸入: 

case要指示 dbx 命令按照符號實際形式解釋符號,請輸入: 

case mixed要指示 dbx 按照大寫形式解釋符號,請輸入: 

case upper參見 Folding Variables to Lowercase and Uppercase。
catch 子命令 

catch [ SignalNumber | SignalName ] 

catch 子命令在信號送到應用程序以前啓動捕獲這個信號。該子命令在被調試的應用程序處理諸如中斷之類的信號時很是有用。待捕獲的信號能夠分別用 SignalNumber 參數按號碼或者用 SignalName 參數按名稱來指定。信號名是不區分大小寫的,而前綴 SIG 是可選的。若是既沒有指定 SignalNumber 也沒有指定 SignalName 參數,則將缺省捕獲除了 SIGHUP、SIGCLD、SIGALARM 和 SIGKILL 以外的全部信號。若是沒有指定參數,將顯示當前可以捕獲的信號的列表。 

示例 
要顯示當前可以被 dbx 捕獲的信號的列表,請輸入: 

catch要捕獲 SIGALARM 信號,請輸入: 

catch SIGALARM參見ignore 子命令和信號處理。 

clear 子命令 

clear SourceLine 

clear 子命令刪除全部給定源文件行的中止。SourceLine 參數能夠按照兩種格式指定: 

看成一個整數 
看成一個文件名字符串,後面跟一個:(冒號)和一個整數 
示例 
要刪除第 19 行中設置的斷點,請輸入: 


clear 19參見 cleari 子命令和 delete 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Setting and Deleting Breakpoints。 

cleari 子命令 

cleari Address 

cleari 子命令清除由 Address 參數指定的地址的全部斷點。 

示例 
要刪除設置在地址 0x100001b4處的斷點,請輸入: 

cleari 0x100001b4要刪除設置在 main() 過程地址處的斷點,輸入: 

cleari &main請參閱 clear 子命令、delete 子命令和 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Setting and Deleting Breakpoints。 


condition 子命令 
condition [ wait | nowait | ConditionNumber ... ] 

condition 子命令顯示一個或多個條件變量的相關信息。若是指定了一個或多個 ConditionNumber 參數,condition 子命令將會顯示指定條件變量的信息。若是沒有指定標誌或者參數,condition 子命令列出全部條件變量的清單。 

各個條件的信息列表以下: 

cv 按照 $cConditionNumber 的格式指出條件變量的符號名稱。 
obj_addr 設定條件變量的內存地址。 
num_wait 設定條件變量中等待的線程的數量。 
waiters 列出等待條件變量的用戶線程。 


注意: dbx 調試程序的print 子命令識別符號條件變量名稱並用來顯示相應對象的狀態。 
標誌 

wait 顯示有等待線程的條件變量。 
nowait 顯示沒有等待線程的條件變量。 

示例 
要顯示關於全部條件變量的信息,請輸入: 

condition要顯示有等待線程的條件變量的信息,請輸入: 
condition wait 

要顯示關於條件變量 3 的信息,請輸入: 

condition 3相似的輸出爲: 

cv obj_addr num_wait waiters 
$c3 0x20003290 0參見 attribute 子命令、mutex 子命令、print 子命令以及thread 子命令。 

另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Using Condition Variables。 

cont 子命令 

cont [ SignalNumber | SignalName ] 

cont 子命令從當前的斷點開始繼續執行應用程序直到該程序結束或者遇到另一個斷點。若是經過 SignalNumber 參數(指定信號數)或者 SignalName 參數(指定信號名),該程序將假定已經收到該信號並繼續執行。信號名不區分大小寫而且其前綴 SIG 是可選的。若是沒有指定信號,該程序將如同沒有中止下來過同樣繼續執行。 

示例 
要從當前斷點位置繼續執行程序,請輸入: 

cont要如同收到 SIGQUIT 信號同樣繼續執行程序,請輸入: 

cont SIGQUIT請參閱 dbx 命令的 detach 子命令、dbx 的 goto子命令、dbx 的 next 子命令、dbx 的 skip 子命令、dbx 的 step 子命令。
delete 子命令 

delete { Number ... | all } 

delete 子命令從應用程序中刪除跟蹤和中止。能夠經過 Number 參數來刪除指定跟蹤和中止,或者經過 all 標誌來刪除全部跟蹤和中止。使用 status 子命令來顯示 dbx 調試程序爲跟蹤和中止生成的相應跟蹤號和中止號。 

標誌 

all 刪除全部的跟蹤和中止。 

示例 
要從應用程序中刪除全部的跟蹤和中止,請輸入: 

delete all要刪除事件號爲 4 的跟蹤和中止,請輸入: 

delete 4請參閱 clear 子命令、cleari 子命令、status 子命令和 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Setting and Deleting Breakpoints。 

detach 子命令 

detach [ SignalNumber | SignalName ] 

detach 子命令將繼續應用程序的執行並退出調試程序。信號能夠經過如下任意一項指定: 

名稱,使用SignalName 參數 
序號,使用SignalNumber 參數 
信號名不區分大小寫並且前綴 SIG 是可選的。 

若是指定了信號,程序將如同接收到該信號同樣繼續執行。若是沒有指定信號,該程序將如同沒有中止下來過同樣繼續執行。 

示例 
要退出 dbx而繼續執行應用程序,請輸入: 

detach要退出 dbx 並如同收到 SIGREQUEST 信號那樣繼續執行程序,請輸入: 

detach SIGREQUEST參見 Using dbx Debug Program。 

display memory 子命令 
{ Address,Address/ | Address/ [ Count ] } [ Mode ] [ >File ] 

不帶任何關鍵字進行初始化的 display memory 子命令將顯示由以下因素控制的內存的部份內容: 

顯示內存的範圍是由下面兩種方法之一指定的: 

兩個 Address 參數,則這兩個地址之間的內容都將顯示出來, 
或者 

一個 Address 參數指定顯示起始地址以及一個 Count 參數指定從 Address 開始顯示的行數。 
在名稱以前加上一個 &(與符號)指定符號地址。地址能夠是其它地址和 +(加號)、 -(減號)以及 *(間接乘法)運算組成的表達式。任何包含在括號中間的表達式都將認爲是一個地址。 

顯示內存的格式是由 Mode 參數控制的。Mode 參數的缺省值爲當前模式。 Mode 參數的初始值爲 X。可能存在的模式包括: 
b 打印八進制的字節。 
c 按字符打印一個字節。 
d 按十進制打印一個短字。 
D 按十進制打印一個長字。 
f 打印單精度的實數。 
g 打印一個雙精度的實數。 
h 按照十六進制打印一個字節。 
i 打印機器指令。 
lld 打印帶符號的 8 字節十進制數。 
llu 打印無符號的 8 字節十進制數。 
llx 打印無符號的 8 字節十六進制數。 
llo 打印無符號的 8 字節八進制數。 
o 按八進制打印一個短字。 
O 按八進制打印一個長字。 
q 打印一個擴展精度的浮點數。 
s 打印一個空字節結尾的字符串。 
x 按十六進制打印一個短字。 
X 按十六進制打印一個長字。 

標誌 

>File 重定向輸出到指定的文件。 

示例 
要按十六進制顯示一個內存起始地址爲 0x3fffe460 的一個長字的內容,請輸入: 

0x3fffe460 / X要按照字符顯示起始地址由變量 y 決定的兩個字節內存內容,請輸入: 

&y / 2c要顯示 FORTRAN 字符串 a_string 中的第六個到第八個元素,請輸入: 

&a_string + 5, &a_string + 7/c請參閱 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Examining Memory Addresses。 

down 子命令 

down [ Count ] 

down 子命令將當前函數在堆棧中向下移動 Count 級。當前函數用來解析名稱。Count 參數的缺省值爲 1。 

示例 
要在堆棧中向下移動一級,請輸入: 

down要在堆棧中向下移動三級,請輸入: 

down 3請參閱 up 子命令、where 子命令和 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Displaying a Stack Trace。 

dump 子命令 

dump [ Procedure ] [ >File ] 

dump 子命令顯示指定過程當中的全部變量的名稱和數值。若是 Procedure 參數爲 . (週期),則全部活動的變量將會被顯示。若是沒有指定 Procedure 參數,則使用當前的過程。若是使用>File 標誌,輸出將會重定向到指定的文件。 

標誌 

>File 重定向輸出到指定的文件。 

示例 
要顯示當前過程當中的變量的名稱和值,請輸入: 

dump要顯示過程 add_count 中的變量的名稱和值,請輸入: 

dump add_count要將當前過程當中的變量的名稱和值重定向輸出到 var.list 文件中,請輸入: 

dump > var.list請參閱 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Displaying and Modifying Variables。 

edit 子命令 

edit [ Procedure | File ] 

edit 子命令爲指定文件啓動編輯器。文件能夠經過 File 參數或者指定 Procedure 參數來指定,其中編輯器將啓動並打開包含該過程的文件中。若是沒有指定文件,則編輯器將會根據當前的源文件來調用。缺省值爲 vi 編輯器。經過把 EDITOR 環境變量從新設置成您想要的編輯器名稱來覆蓋缺省值。 

示例 
要編輯當前源文件,請輸入: 

edit要編輯 main.c 文件,請輸入: 

edit main.c要編輯包含在 do_count() 過程當中的文件,請輸入: 

edit do_count參見 list 子命令、vi 或者vedit 命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Changing the Current File or Procedure 和 Displaying the Current File。
file 子命令 

file [ File ] 

file 子命令將當前的源文件換成 File 參數指定的文件;它不會寫源文件。File 參數能夠指定完整的文件的路徑。若是 File 參數沒有指定路徑,dbx 程序經過搜索使用路徑試圖找到該文件。若是沒有指定 File 參數file 子命令將會顯示當前的源文件名。若是路徑已知,file 子命令還顯示文件的完整或者相對路徑名。 

示例 
要將當前源文件換成 main.c 文件中,請輸入: 

file main.c要顯示當前源文件名,請輸入: 

file參見 func 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Changing the Current File or Procedure 和 Displaying the Current File。 

func 子命令 

func [ Procedure ] 

func 子命令將當前函數換到由參數 Procedure 指定的程序或函數。若是沒有指定 Procedure 參數缺省值爲顯示當前的函數。改變當前函數將當前源文件換成包含新函數的文件;當前名稱解析的做用域也發生了改變。 

示例 
要將當前的函數換到 do_count 過程,請輸入: 

func do_count要顯示當前函數的名稱,請輸入: 

func參見 file 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Changing the Current File or Procedure。 

goto 子命令 

goto SourceLine 

goto 子命令使源行成爲下一個要運行的行。一般指定的源行必須與當前行在同一函數中。要重設該約束,使用 set 子命令並帶有 $unsafegoto 標誌。 

例子 
要使下一個執行的行爲第六行,請輸入: 


goto 6參見 cont 子命令、gotoi 子命令、 以及set 子命令。 

gotoi 子命令 

gotoi Address 

gotoi 子命令修改程序計數器地址爲 Address 參數指定的地址。 

例子 
要修改程序計數器地址爲 0x100002b4,請輸入: 


gotoi 0x100002b4參見 goto 子命令。 

help 子命令 

help [ Subcommand | Topic ] 

根據您指定的參數 help 子命令顯示 dbx 子命令或主題的幫助信息。輸入 help 子命令並帶有 Subcommand 參數顯示語法語句和指定子命令的描述。輸入 help 子命令並帶有 Topic 參數顯示指定主題的詳細描述。如下是可用的主題: 

startup 列出 dbx 啓動選項列表。 
execution 列出和程序執行相關的 dbx 子命令。 
breakpoints 列出和斷點和跟蹤相關的 dbx 子命令。 
files 列出用於訪問源文件的 dbx 子命令。 
data 列出用於訪問程序變量和數據的 dbx 子命令。 
machine 列出用於機器級別的調試的 dbx 子命令描述。 
environment 列出用於 dbx 的配置和環境設置的 dbx 子命令。 
threads 列出 dbx 子命令得到線程相關的對象。 
expressions 描述 dbx 表達式語法和運算符。 
scope 描述 dbx 如何解析不用做用域的名稱。 
set_variables 列出 dbx 帶有用法說明的調試變量。 
usage 列出帶有簡單描述的 dbx 公共子命令。 

示例 
要列出全部可用的dbx 子命令和主題,請輸入: 

幫助要顯示dbx 子命令 list的描述,請輸入: 

help list要顯示 dbx 命令的主題 set_variables 的描述,請輸入: 

help set_variablesignore 子命令 

ignore [ SignalNumber | SignalName ] 

ignore 子命令在信號送到應用程序以前中止指定信號的捕捉。該子命令在調試應用程序處理例如中斷之類的信號時很是有用。 

要捕捉的信號能夠經過如下任意一項指定: 

SignalNumber 參數指定信號數 
SignalName 參數指定信號名稱 
信號名是不區分大小寫的。前綴 SIG 是可選的。 

若是既沒有指定SignalNumber 也沒有指定 SignalName 參數,按缺省將捕捉除了 SIGHUP、SIGCLD、SIGALRM 以及 SIGKILL 之外的全部信號。若是 SIGTRAP 信號來自調試器之外的進程,dbx 調試程序沒法忽略該信號。若是沒有指定參數,將會顯示當前全部被忽略的信號的列表。 

例子 
要使 dbx 忽略發送到應用程序的警報時鐘超時信號,請輸入: 


ignore alrm參見 catch 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Handling Signals。 

list 子命令 

list [ Procedure | SourceLine-Expression [ ,SourceLine-Expression ] ] 

list 子命令顯示指定數目的源文件的行。行數由如下兩種方法中的一種來指定: 

經過使用 Procedure 參數指定一個過程。 
在這種狀況下,list 子命令顯示從指定過程開始前的幾行開始直到列表窗口已滿。 

經過使用SourceLine-Expression參數指定源文件開始和結束行。 
SourceLine-Expression 參數由一個有效的行號,加上可選的 +(加號)或 -(減號),以及一個整數組成。另外,SourceLine $(美圓符號)能夠用來表示當前行號;SourceLine @ (at 符號) 能夠用來表示要列出的下一行的行號。 

全部在第一個指定的行號和第二個指定的行號之間(包括這兩行)的行都將被顯示出來。 

若是沒指定第二個源行,則只打印第一行。 

若是 list 子命令沒有指定參數,則將從當前源文件的行開始,打印 $listwindow 所指定的行數。 

要修改列表行數的默認值,能夠設置特定的調試程序變量,$listwindow,爲您想要的行數。$listwindow 的初始值爲 10。 

示例 
要列出當前文件中第 1 到第 10 行,請輸入: 

list 1,10要列出 10 行,或者 $listwindow 行的 main 程序,請輸入: 

list main要以當前行爲中間行,列出先後共 11 行,請輸入: 

list $-5,$+5您能夠在 SourceLineExpression 表達式中使用包括加法和減法在內的簡單整數表達式。例如: 

(dbx) list $ 
4 { 

(dbx) list 5 
5 char i = '4'; 

(dbx) list sub 
23 char *sub(s,a,k) 
24 int a; 
25 enum status k; . . . 

(dbx) move 
25 
(dbx) list @ -2 
23 char *sub(s,a,k)參見 edit 子命令、listi 子命令以及move 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Displaying the Current File。
listi 子命令 
listi [ Procedure | at SourceLine | Address [ , Address ] ] 

listi 子命令顯示源文件指定的指令集合。顯示的指令能夠經過下列方法指定: 

提供 Procedure 參數,其中 listi 子命令將從指定過程開始列出指令列表,直到列表窗口填滿爲止。 
使用at SourceLine 標誌,其中 listi 從指定行開始顯示指令列表,直到列表窗口被填滿爲止。SourceLine 變量能夠經過一個整數或者一個文件名字符串後跟:(冒號)和一個整數的方法指定。 
經過 Address 參數來指定開始和結束的地址,則兩個地址之間(包括這兩個地址)全部的指令都將被顯示出來。 
若是 listi 子命令沒有使用標誌或參數,則顯示下一個 $listwindow 指令。要修改當前列表窗口的大小,可使用 set $listwindow=Value 子命令。 

反彙編方式 
dbx 程序能夠反彙編 POWER 系列 系列或者 POWER PC 體系結構指令。在默認模式下,dbx 程序顯示正在運行的結構的指令。 

dbx 命令中的 set 子命令的 $instructionset 以及 $mnemonics 變量在容許您覆蓋默認的反彙編方式。要得到更多的信息,請參見dbx 命令中的 set 子命令。 

標誌 

SourceLine 指定了列表的開始命令行。 

示例 
要列出下 10 條或者 $listwindow 條指令,請輸入: 

listi要列出第 10 行的機器指令,請輸入 

listi at 10要列出 sample.c 文件中源代碼第 5 行的機器指令,請輸入: 

listi at "sample.c":5要列出地址位於 0x10000400 和 0x10000420之間的指令,請輸入: 

listi 0x10000400, 0x10000420參見 list 子命令以及 set 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Debuggingat the Machine Level with dbx。 

map 子命令 

map [ > File ] 

map 子命令顯示應用程序中每一個裝入部分的特徵。該信息包括導入的每一個裝入塊的名稱、文原本源、文本長度、數據來源以及數據長度。 

標誌 

>File 重定向輸出到指定的文件。 

請參閱 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Debugging at the Machine Level with dbx。 

move 子命令 

move SourceLine 

move 子命令將下一個顯示行更換爲由 SourceLine 參數指定的行。該子命令修改 @ (at 符號) 變量的值。 

SourceLine 變量能夠經過一個整數或者在表明文件名的字符串後跟 :(冒號)和一個整數的方法指定。 

示例 
要想將下一行修改成第 12 行,請輸入: 

move 12要將下一行修改成文件 sample.c 的第 5 行,請輸入: 

move "sample.c":5參見 list 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Displaying the Current File。 

multproc 子命令 

multproc [ on | parent | child | off ] 

multproc 子命令指定 dbx 調試程序在建立派生或者越權進程時的行爲。on 標誌用來指定一個新的 dbx 會話將會被建立以調試派生進程的子路徑。原先的dbx 將會繼續調試原來的父路徑。parent 以及 child 標誌用來指定派生進程的單獨路徑。除了off 的全部標誌都能使 dbx 跟隨越權進程。off 標誌禁用多進程調試。若是沒有指定標誌,multproc 子命令返回當前調試的多進程的狀態。 

dbx 程序使用 Xwindows 來進行多進程調試。dbx 程序將會打開足夠多的窗口供多進程調試使用。每一個子窗口的標題爲子進程 ID(pid)。要在進程之間切換,使用 Xwindows 處理技術來激活 dbx 會話顯示的窗口。若是系統不支持 Xwindows,在調試派生進程時將會出現一個警告信息而 dbx 程序繼續僅調試父進程。多進程調試也可能因以下緣由失敗: 

dbx 程序沒有運行在 Xwindows 環境下。 
Xwindows 已經運行可是dbx 通用 $xdisplay 變量沒有設置一個有效的顯示名。$xdisplay 變量被初始化成 shell 的 DISPLAY 環境變量。set 名稱 =表達式 dbx 子命令能夠用來修改顯示名稱的值。 
/tmp 目錄不容許對調試程序進行讀寫訪問。dbx 程序要求在該目錄中有小量空間控制 Xwindow 環境。 
該系統沒有足夠的資源知足一個新的 Xwindow 窗口。 
$xdisplay 設置成遠程顯示,用戶可能看不見新建立的 Xwindow。若是$xdisplay 設置不正確,Xwindows 或者其餘的系統資源將會報告發生錯誤的緣由。 

dbx 程序不能區分不一樣類型錯誤的區別,可是將會在子命令失敗時發送以下的信息: 


Warning: dbx subcommand multiproc fails. dbx 
continued with multproc disabled.新建立窗口的用戶定義的配置能夠在 .Xdefaults 文件中由 dbx_term 應用程序名定義。 

標誌 

on 啓用多進程調試。 
off 禁用多進程調試。 

示例 
要檢查當前多進程的調試狀態,請輸入: 

multproc要啓用多進程調試,請輸入: 

multproc on要禁用多進程調試,請輸入: 

multproc off 參見screen 子命令以及 fork 子例程。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Debugging Programs Involving Multiple Processes。
mutex 子命令 

mutex [ lock | unlock | thnum | utid | MutexNumber ... ] 

mutex 子命令顯示關於互斥的信息。若是給定 MutexNumber參數mutex 子命令將顯示指定互斥的信息。若是沒有指定標誌或者參數,mutex 子命令將會顯示全部的互斥信息。 

每一個互斥信息列出以下: 

mutex 指定互斥的符號名,遵循 $mMutexNumber 格式。 
type 指出互斥類型:non-rec(非遞歸),recursi(遞歸)或者 fast(快速)。 
obj_addr 指出互斥的內存地址。 
lock 指出互斥的鎖定狀態:yes 若是互斥已經鎖定,no 若是沒有鎖定。 
owner 若是鎖定互斥,指出擁有該互斥的用戶線程的符號名。 
blockers 列出在互斥變量中鎖定的用戶線程。 


注意: dbx 調試程序的 print 子命令識別互斥符號名,而後能用來顯示相應對象的狀態。 
標誌 

lock 顯示關於鎖定互斥的信息。 
unlock 顯示關於未鎖定互斥的信息。 
thnum 顯示特定線程的全部互斥的信息。 
utid 顯示用戶線程 id 與給定用戶線程 id 符合的用戶線程的全部互斥信息。 

示例 
要顯示全部互斥的信息,請輸入: 

mutex要顯示全部鎖定的互斥的信息,請輸入: 
mutex lock 

要顯示互斥號爲 四、五、6的信息,請輸入: 

mutex 4 5 6輸出相似於: 

mutex obj_addr type lock owner blockers 
$m4 0x20003274 non-rec no 
$m5 0x20003280 recursi no 
$m6 0x2000328a fast no要顯示全部線程 1 的互斥信息,請輸入: 

mutex thnum 1要顯示線程號爲 0x0001 的線程擁有的全部互斥信息,請輸入: 

mutex utid 0x0001參見attribute 子命令、condition 子命令、print 子命令以及 thread 子命令。 

另見AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Using Mutexes。 

next 子命令 

next [ Number ] 

next 子命令運行應用程序到下一行。Number 參數指定 next 子命令運行的次數。若是沒有指定 Number 參數,next 只運行一次。 

若是您在多線程應用程序中使用 next 子命令,操做期間運行全部的用戶線程,可是該程序繼續運行直到運行到指定的行。若是您想單步運行正在運行的線程,使用 set 子命令對 $hold_next 變量進行設置。設置該變量將可能致使死鎖,由於運行中的線程可能等待某個阻塞的線程擁有的鎖。 

示例 
要繼續執行到下一源行,請輸入: 

next要繼續執行到當前源行後的第三行,請輸入: 

next 3請參閱 cont 子命令、goto 子命令、nexti 子命令、set 子命令以及 step 子命令。 

nexti 子命令 

nexti [ Number ] 

nexti 子命令運行應用程序到下一個指令。Number 參數指定nexti 子命令運行的次數。若是沒有指定 Number 參數,nexti 只運行一次。 

若是您在多線程應用程序中使用 nexti 子命令,全部的用戶線程在操做期間都將運行,可是程序將會繼續運行直到運行的線程達到指定的機器指令。若是您想單步運行正在運行的線程,使用 set 子命令對 $hold_next變量進行設置。設置該變量將可能致使死鎖,由於運行中的線程可能等待某個阻塞的線程擁有的鎖。 

示例 
要繼續執行到下一個機器指令,請輸入: 

nexti要繼續執行到從當前機器指令起的第三個機器指令,請輸入: 

nexti 3參見gotoi 子命令、next 子命令、set 子命令以及stepi 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Running a Program at the Machine Level。 


print 子命令 
print 表達式 ... 

print Procedure ( [ Parameters ] ) 

print 子命令打印執行如下任務: 

打印由Expression 參數指定的表達式列表的值。 
執行 Procedure 參數指定的過程並將過程的返回值打印出來。包括的參數傳遞給過程。 
示例 
要顯示x 以及 y 左移兩位的值,請輸入: 

print x, y << 2要顯示帶參數 0 調用 sbrk 例程的返回值,請輸入: 

print sbrk(0)參見assign 子命令、call 子命令以及 set 子命令。 

prompt 子命令 

prompt [ "String" ] 

prompt 子命令將 dbx 命令的提示符修改成String 參數指定的字符串。 

例子 
要將提示符修改成 dbx>,請輸入: 


prompt "dbx>"請參閱 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Defining a New dbx Prompt。 


quit 子命令 
quit 

quit 子命令結束全部在 dbx 調試對話中的進程。 

參見 detach 子命令。 


registers 子命令 
registers [ >File ] 

registers 子命令顯示通用寄存器、系統控制寄存器、浮點數寄存器以及當前指令寄存器的值。 

通用寄存器由符號$rNumber 變量表示,其中Number 參數指定寄存器的序號。 

注意: 寄存器的值能夠設置成十六進制數 0xdeadbeef。十六進制數 0xdeadbeef 是一個在進程初始化時就賦到通用寄存器中的初始值。 
浮點寄存器由 $frNumber 變量表示。按照缺省設置,浮點寄存器不會被顯示出來。要顯示浮點寄存器,使用 unset $noflregs dbx 子命令。 

注意:若是當前線程正處於內核模式,registers 子命令將不能顯示寄存器。 
標誌 

>File 重定向輸出到指定的文件。 

參見set 子命令和 unset 子命令。另見 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Using Machine Registers。
rerun 子命令  rerun [ Arguments ] [ < File ] [ > File ] [ > > File ] [ 2> File ] [ 2> > File ] [ >& File ] [ > >& File ]  rerun 子命令開始目標文件的執行。Arguments 參數將會做爲命令行參數傳遞。若是沒有指定 Arguments 參數,最近一次 run 或者 rerun 子命令使用的參數將會被再次使用。  標誌  <File 將輸入重定向使得從 File文件中得到輸入。  >File 重定向輸出到 File文件中。  > >File 添加劇定向輸出到 File 中。  2>File 將標準錯誤重定向到 File 中。  2> >File 添加劇定向標準錯誤到 File 中。  >&File 將輸出和標準錯誤重定向到 File 中。  > >&File 添加輸出和標準錯誤到 File 中。  參見 run 子命令。  return 子命令  return [ Procedure ]  return 子命令使應用程序執行直到返回到由 Procedure 參數指定的過程。若是沒有指定 Procedure 參數,執行將會在當前過程返回時中止。  示例  要繼續執行例程的調用,請輸入:  return要繼續執行至 main 過程,請輸入:  return main rwlock 子命令  rwlock [read | write | RwlockNumber....]  rwlock 子命令顯示 rwlocks 的信息。若是給定 RwlockNumber 參數,rwlock 子命令將會顯示指定 rwlocks 的信息。若是沒有指定標誌或者參數,rwlock 子命令將會顯示全部 rwlocks 的信息。  每一個 rwlock 的信息以下:  rwl 設定 rwlock 的符號名稱,格式爲 $rw RwlockNumber。  flag_value 指出標誌的值。  owner 指出 rwlock 的全部者。  status 指出誰擁有該 rwlock。這個值能夠是讀入(若是由讀入者擁有)、寫出(若是由寫出者擁有)或者空閒(若是空閒)。  wsleep[#] 指出寫入的線程阻塞。# 說明寫入的線程阻塞的總數。  rsleep[#] 指出讀入的線程阻塞。# 說明讀入的線程阻塞的總數。  注意: dbx 調試程序的print 子命令識別 rwlock 的符號名稱並能用於顯示其對應的對象的狀態。  標誌  read 顯示全部處於讀狀態的 rwlock 的信息。  write 顯示全部處於寫狀態的 rwlock 的信息。  示例  要顯示全部 rwlock 的信息,請輸入:  rwlock輸出相似於:  rwl flag_value owner status  $rwl 1 $t1 write  rsleeps[ 0]:  wsleeps[ 0]:要顯示處於寫狀態的全部 rwlock 的信息,請輸入:  rwlock write輸出相似於:  rwl flag_value owner status  $rwl 1 $t1 write  rsleeps[ 0]:  wsleeps[ 0]:參見attribute 子命令、condition 子命令、 mutex 子命令、print 子命令以及 thread 子命令。  run 子命令  run [ Arguments ] [ <File ] [ >File ] [ > >File ] [ 2>File ] [ 2> >File ] [ >&File ] [ > >&File ]  run 子命令打開目標文件。Arguments 參數將會做爲一個命令行參數使用。  標誌  <File 將輸入重定向使得從 File文件中得到輸入。  >File 重定向輸出到 File文件中。  2>File 將標準錯誤重定向到 File 中。  > >File 添加劇定向輸出到 File 中。  2> >File 添加劇定向標準錯誤到 File 中。  >&File 將輸出和標準錯誤重定向到 File 中。  > >&File 添加輸出和標準錯誤到 File 中。  例子  要帶參數 blue 和 12 運行應用程序,請輸入:  run blue 12參見 rerun 子命令。  screen 子命令  screen  screen 子命令爲 dbx 命令交互打開一個 Xwindow 窗口。您能夠在進程發生的窗口繼續操做。  screen 子命令必須在 dbx 調試程序運行在一個 Xwindows 環境下時運行。若是 screen 子命令運行於非 Xwindow 環境下,dbx 程序將會顯示一個警告信息而且繼續執行調試過程如同沒有設定 screen 子命令。screen 子命令也可能在下述狀況下失敗:  dbx 程序沒有運行在 Xwindows 環境下。  Xwindows 已經運行可是dbx 通用 $xdisplay 變量沒有設置一個有效的顯示名。 $xdisplay 變量被初始化成 DISPLAY 環境變量的值。dbx 子命令 set Name=表達式修改顯示名稱的值。  Xwindows 正在運行,可是 TERM 環境變量沒有設置成一個有效的命令名稱以調用新窗口。  /tmp 目錄不容許對調試程序進行讀寫訪問。dbx 程序要求在 screen 命令執行時該目錄中有小量空間。  該系統沒有足夠的資源知足一個新的 Xwindow 窗口。  dbx 程序不能區分不一樣類型錯誤的區別,可是將會在子命令失敗時發送以下的信息:  Warning:dbx subcommand screen fails. dbx  continues.若是$xdisplay 設置成遠程顯示,用戶可能看不見新建立的 Xwindow。若是$xdisplay 設置不正確,Xwindows 或者其餘的系統資源將會報告發生該問題。  新建立窗口的用戶定義的配置能夠在 .Xdefaults 文件中由 dbx_term 應用程序名定義。  示例  要打開一個 dbx 命令交互的 Xwindow 窗口,請輸入:  screen
相關文章
相關標籤/搜索