久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

GDB常用命令

 啟_明_星 2010-04-09
在linux的c編程中大家經(jīng)常用gdb調(diào)試程序,,以下是一些常用的指令BSD愛好者樂園k6g4at9c3}$k8^
1.break FUNCTIONBSD愛好者樂園b ~O9W8M
在某個函數(shù)上設(shè)置斷點,。函數(shù)重載時,,有可能同時在幾個重載的函數(shù)上設(shè)置了斷點BSD愛好者樂園$r:y#~7AeK

g0]?b)z$uxbreak +OFFSETBSD愛好者樂園4^ wE G'im3Q2j|$_Bt
break -OFFSET
_1t4V]4Ok'c在當前程序運行到的前幾行或后幾行設(shè)置斷點BSD愛好者樂園e,mH$a?Lz^ N
BSD愛好者樂園Rr-\aOr-o7v?D9u
break LINENUMBSD愛好者樂園esc,n4g7_%OB7Qt
在行號為LINENUM的行上設(shè)置斷點
D"nvj F_2HtY ^l
_d6_+e,B&Ju N6^break FILENAME:LINENUM
e|?Z-}Zd文件名為FILENAME的原文件的第LINENUM行設(shè)置斷點
[7f{&I-Td+Z(R
,F1n8eH0y g0QStbreak FILENAME:FUNCTIONBSD愛好者樂園%o\HJ5Xn|
在文件名為FILENAME的FUNCTION函數(shù)上設(shè)置斷點
W?0IL|當你的多個文件中可能含有相同的函數(shù)名時必須給出文件名,。BSD愛好者樂園1S5Oa"l$uP,rz
BSD愛好者樂園tFcU^D"u]
break *ADDRESSBSD愛好者樂園 R\Q*b?b
在地址ADDRESS上設(shè)置斷點,,這個命令允許你在沒有調(diào)試信息的程序中設(shè)置斷點BSD愛好者樂園8UdOa8A(w/z

*J#LJ-l1Gg{break
(K:Z1dTBo(eJ當break命令不包含任何參數(shù)時,,break命令在當前執(zhí)行到的程序運行棧中的BSD愛好者樂園ab!J7X BFf\
下一條指令上設(shè)置一個斷點,。除了棧底以外,這個命令使程序在一旦從當前
)TnI*A7b&e?jx-vw函數(shù)返回時停止,。相似的命令是finish,但finish并不設(shè)置斷點。這一點在
HK7GD%D1RO%`h+w^循環(huán)語句中很有用,。gdb在恢復執(zhí)行時,至少執(zhí)行一條指令,。
\e)Pp4^%loBSD愛好者樂園7~0o7`:`bc&^?R
break ... if COND
`%UFg"ZU6[這個命令設(shè)置一個條件斷點,條件由COND指定,;在gdb每次執(zhí)行到此斷點時BSD愛好者樂園.qOA;YV$OVb0M
COND都被計算當COND的值為非零時,程序在斷點處停止
#T CWs M*r`BPlI
T.QjT'dp+b;Tignore BNUM COUNT
Eo,xC0V7}G設(shè)置第BNUM號斷點的被忽略的次數(shù)為COUNT,,即斷點BNUM再執(zhí)行到第COUNT+1BSD愛好者樂園@%LiS1w
次時程序停止BSD愛好者樂園$wis?`4aB
BSD愛好者樂園iyH,qW
tbreak ARGS 或者簡寫為 tbBSD愛好者樂園kowu6fAk9U
設(shè)置斷點為只有效一次。ARGS的使用同break中的參量的使用
}6Y)awW
@"N1UT#^1lX;k%chbreak ARGSBSD愛好者樂園}I]3qrR
設(shè)置一個由硬件支持的斷點。這個命令的主要目的是用于對EPROM/ROM程序的調(diào)試
Tm ?/qQ4^E因為這條命令可以在不改變代碼的情況下設(shè)置斷點,。這可以同SPARCLite DSU一起
6q+u(^Y K|q使用。當程序訪問某些變量和代碼時,,DSU將設(shè)置“陷井”,。注意:你只能一次使用BSD愛好者樂園&U7o#c)VyJ$Ep
一個斷點,,在新設(shè)置斷點時,,先刪除原斷點
W&h'vX9cEU1f
Z*d6r$`'IdAK Qm5`thbreak ARGSBSD愛好者樂園L:q0S4t @Q;l:zib
設(shè)置只有一次作用的硬件支持斷點BSD愛好者樂園Yv\?X9EUy\6[n
BSD愛好者樂園5^)yqv"^:A@
rbreak REGEX
2?$AN8mn og-K在所有滿足表達式REGEX的函數(shù)上設(shè)置斷點,。這個命令在所有相匹配的函數(shù)上設(shè)置無BSD愛好者樂園Z6_vcg#F _^
條件斷點,,當這個命令完成時顯示所有被設(shè)置的斷點信息。這個命令設(shè)置的斷點和
?I P*DA&_break命令設(shè)置的沒有什么不同,。當調(diào)試C++程序時這個命令在重載函數(shù)上設(shè)置斷點時
n{ ^7m?(n'F/S}非常有用,。BSD愛好者樂園q6h&] S0`7g@;d{~C
BSD愛好者樂園1q7SF+rV
info breakpoints [N]BSD愛好者樂園{3o!Wz(O z)X9\
info break [N]
'{K`6} b&]ijbsinfo watchpoints [N]BSD愛好者樂園H(x-J'}g5ea
顯示所有的斷點和觀察點的設(shè)置表,有下列一些列
l9o)w"hIe|*Breakpoint Numbers*----斷點號BSD愛好者樂園seCpxni7_0RZ J
*Type*----斷點類型(斷點或是觀察點)
$Ej,C)f0`!A*Disposition*---顯示斷點的狀態(tài)
EK5[4Um*Enabled or Disabled*---使能或不使能,。y表示使能,,n表示不使能。BSD愛好者樂園'\0ga2S7k/V N[Y
*Address*----地址,,斷點在你程序中的地址(內(nèi)存地址)BSD愛好者樂園u,JVxW?UAl)?!? S
*What*---地址,,斷點在你程序中的行號,。
mqq{X)}如果斷點是條件斷點,此命令還顯示斷點所需要的條件,。
^&U+iUl$P9h帶參數(shù)N的info break命令只顯示由N指定的斷點的信息。BSD愛好者樂園N]c1w!w7Uvb
此命令還顯示斷點的運行信息(被執(zhí)行過幾次),,這個功能在使用ignoreBSD愛好者樂園jGJD;J,?
命令時很有用,。你可以ignore一個斷點許多次,。使用這個命令可以查看斷點
^J4f9THN!e!Y被執(zhí)行了多少次,。這樣可以更快的找到錯誤,。
L1L;JCrz
k'KBb3VFGmaint info breakpointsBSD愛好者樂園3q/} tTp { r4J
顯示所有的斷點,,無論是你設(shè)置的還是gdb自動設(shè)置的,。
j?'Z#t0\x|斷點的含義:BSD愛好者樂園x,Z5n"Rg#\e-F
breakpoint:斷點,,普通斷點BSD愛好者樂園;k@DMY'ES_+]
watchpoint:普通觀察點BSD愛好者樂園0x1a"p b;U_4Q*`
longjmp:內(nèi)部斷點,,用于處理longjmp調(diào)用BSD愛好者樂園mh-PY5W]Z3Cx
longjmp resume:內(nèi)部斷點,設(shè)置在longjmp調(diào)用的目標上BSD愛好者樂園Ok9` A q1S(?0k
until:until命令所使用的內(nèi)部斷點
.s?~P aBVfinish:finish命令所使用的內(nèi)部斷點BSD愛好者樂園[[*@;p.t/r?D_V:K6dd4u
BSD愛好者樂園rTVa+V
2.watch EXPRBSD愛好者樂園Q,@.~Q lw5w!a?y X
為表達式(變量)expr設(shè)置一個觀察點,。一量表達式值有變化時,,馬上停住程序。BSD愛好者樂園?TS1CyXfJ
這個命令使用EXPR作為表達式設(shè)置一個觀察點。GDB將把表達式加入到程序中并監(jiān)
n)viN1N\視程序的運行,,當表達式的值被改變時GDB就使程序停止。這個也可以被用在SPARCliteBSD愛好者樂園oZFN&\2v/B
DSU提供的新的自陷工具中,。當程序存取某個地址或某條指令時(這個地址在調(diào)試寄BSD愛好者樂園FK#lfb
存器中指定),DSU將產(chǎn)生自陷。對于數(shù)據(jù)地址DSU支持watch命令,然而硬件斷點寄BSD愛好者樂園&n_HA(KM
存器只能存儲兩個斷點地址,,而且斷點的類型必須相同。就是兩個rwatch型斷點
jg H b]L(j}m或是兩個awatch型斷點,。
L;J6M{3~K
Kg4[3G7q#AsIrwatch EXPR
3g0G#[l ~8N1Aa?w6c設(shè)置一個觀察點,當EXPR被程序讀時,,程序被暫停,。
@C%o@*V'M
X8K-xe&imawatch EXPR
v4] u%cy'\2\XB設(shè)置一個觀察點,當EXPR被讀出然后被寫入時程序被暫停。
dp.t&Y.`
X*V4[ c;B{ }info watchpoints
;PO4z6[F:^i在多線程的程序中,,觀察點的作用很有限,GDB只能觀察在一個線程中的表達式的值
$l uS ip$s4D9_如果你確信表達式只被當前線程所存取,,那么使用觀察點才有效。GDB不能注意一個
)nC?'y6Q;@GI非當前線程對表達式值的改變,。
2|[z8P+x7e i&@BSD愛好者樂園%??!dYZ%aW&w)p
rwatch <expr>BSD愛好者樂園VLN6O5{ j o&cR}k
當表達式(變量)expr被讀時,,停住程序。BSD愛好者樂園[b*\!v:I:h%N
BSD愛好者樂園/q3If.V7o
awatch <expr>
:p9Pg#WL!?當表達式(變量)的值被讀或被寫時,,停住程序,。BSD愛好者樂園hE4gvJ$|$_-Q

9ziB2}Yinfo watchpointsBSD愛好者樂園-Nx1n-G VI uE$I
列出當前所設(shè)置了的所有觀察點,。BSD愛好者樂園h]${?pr IE
BSD愛好者樂園'f.l*_8cE
BSD愛好者樂園:a9`HM7^gOX m
3.catch EXCEPTIONS
8t;s1i'^?KNb/D'r}使用這個命令在一個被激活的異常處理句柄中設(shè)置斷點,。EXCEPTIONS是一個你要抓住BSD愛好者樂園]/q.dvS+i%h
的異常,。你一樣可以使用info catch命令來列出活躍的異常處理句柄。BSD愛好者樂園5~lc)hfy%qX
BSD愛好者樂園/@%j o:v,W hQ
GDB中對于異常處理由以下情況不能處理:BSD愛好者樂園-e#LEt7}4WL
* 如果你使用一個交互的函數(shù),,當函數(shù)運行結(jié)束時,GDB將象普通情況一樣把控制返BSD愛好者樂園tpw\*\k?{F?^
回給你。如果在調(diào)用中發(fā)生了異常,,這個函數(shù)將繼續(xù)運行直到遇到一個斷點,一個信號
~tf e'Mii%VCQ"E或是退出運行,。BSD愛好者樂園+V4X q,Dy9Co
* 你不能手工產(chǎn)生一個異常( 即異常只能由程序運行中產(chǎn)生 )
2M^e p'KE%cm?p7SZ* 你不能手工設(shè)置一個異常處理句柄,。BSD愛好者樂園qg%\5yZ
有時catch命令不一定是調(diào)試異常處理的最好的方法,。如果你需要知道異常產(chǎn)生的BSD愛好者樂園;Qo;Y?Q(L1^0z6OfW
確切位置,,最好在異常處理句柄被調(diào)用以前設(shè)置一個斷點,,這樣你可以檢查棧的內(nèi)容,。
]^%}7V?g?l)Y E'n如果你在一個異常處理句柄上設(shè)置斷點,,那么你就不容易知道異常發(fā)生的位置和原因。
5jqhg?FG EG要僅僅只在異常處理句柄被喚醒之前設(shè)置斷點,你必須了解一些語言的實現(xiàn)細節(jié),。
ofHEwD{#YBSD愛好者樂園"Y+?2`Cu(F
3.cont N
7B]UI1U6S*wz e第N次經(jīng)過該斷點時才停止程序運行
(tu3l j+|%K*}
y8P:wrD$\0V2M4.enable 斷點編號BSD愛好者樂園x\c2o-b`8z"V0p3P%O6K
恢復暫時失活的斷點,,要恢復多個編號的斷點,,可用空格將編號分開
9Z#{U~&K%EBSD愛好者樂園\ o7u#H9oBd0z$` I
5.disable 斷點編號
I3f)\F$[%VV使斷點失效,但是斷點還在
I#pB Zh/p0ErJ6FBSD愛好者樂園,rDi-Zn b
6.delete 斷點編號或者表達式
@&`!wP(G+N$]刪除某斷點BSD愛好者樂園t,{)b/d6~M3Y#g
BSD愛好者樂園?2JC!W,\)o
7.clear 斷點所在行號BSD愛好者樂園l9PQhK7a b:A
清除某斷點
5uc1k&rCb7y$PBSD愛好者樂園@)nI1}WGqK
8.查看斷點列表
%Kf5C+BR ~)?]Finfo break
gB-U&e0jni;V'EBSD愛好者樂園Y`0cN!\(u{
9.watch counter>15
u-V#O tT當counter>15的時候程序終止
jQe^ Id
|3f`:r$Lz ^10.當程序崩潰的時候linux會生成一個core文件,,可以用
j#z3Q N4waO{gdb a.out coreBSD愛好者樂園.XQ2@jp:UO0A
whereBSD愛好者樂園%FC?gT+je.I'}
查看導致崩潰的原因
$sB.l%k9\,XY
f,ON$CE11.continue
P$f LQ l9eswDs恢復程序運行,,直到遇到下一個斷點BSD愛好者樂園aH(L*rk*_Z XR1{
BSD愛好者樂園 hj'ecL
12.runBSD愛好者樂園~q9|zs0~x
程序開始運行,,直到遇到斷點BSD愛好者樂園%K$wI RW7CH#Y%TV

Ul?;g;cs!g)N3o4B13.stepBSD愛好者樂園} ^,b \y
執(zhí)行一行代碼
,D:`-D6uhvX
c'p'K P5@%?14.next
T1p MDP和s不同的是他不跟蹤到代碼的內(nèi)部,,一步一步執(zhí)行代碼
,C1BL"G"n?RG9ix_T
nM8a8yv5N-RD9W2N15.直接回車為執(zhí)行上一個命令BSD愛好者樂園"[Y-]'GMn+E r:uK&mL

'iUP7z.c%K16.print 變量
W5R |?\z#iue打印某一變量的值BSD愛好者樂園$Np4U{]f;o*o{b
BSD愛好者樂園'c~+F2Y\p q-w;py(M$j
17.display 變量BSD愛好者樂園?xP;f,A Ij7i
每次運行到斷點就顯示變量的值,,用于觀察變量的變化
fr2HIC+z*{ t
5`X8mI&i)~R#D18.set 變量=BSD愛好者樂園^B4s?(|)z]J1~
在程序執(zhí)行中重新設(shè)置某變量的值BSD愛好者樂園Z+^?C~5Y[o_;G6Q]

-u"I mAm19.printf %2.2s ,(char*)0x120100fa0
\Q.`:J+CIXjz結(jié)果打印出:He
#bkm7X3[,e,N_YK&j
r!V,baH'qaN(zh20. 設(shè)置gdb的列寬,以下為將屏幕設(shè)置為70列
u?h!d7W#VZset width 70
9FlF{/?1|
7d\!~q+gN3yT@21. info args 列出你程序所接受的命令行參數(shù)
&F&_5}GOinfo registers列出寄存器的狀態(tài)
y9f$Z/T&n,kI6[Y1dinfo breakpoint列出在程序中設(shè)的斷點
&S;`+Vxp'P要獲得詳細的關(guān)于info的信息用help info.
#mr3ZqE|nBSD愛好者樂園#jo8js7rOz
22. setBSD愛好者樂園Vl_s1~A!ed
這個命令用來為你的程序設(shè)置一個運行環(huán)境(使用一個表達式),。
8u8qo)P)`set prompt $把gdb的提示符設(shè)為$.
/y#PT*e _`set args 可指定運行時參數(shù),。(如:set args 10 20 30 40 50)BSD愛好者樂園%GROFY"mVV-bQA
show args 命令可以查看設(shè)置好的運行參數(shù),。BSD愛好者樂園&Z+uA(M0D"a(y7^6W
BSD愛好者樂園G0eD8@n7ywi
23. showBSD愛好者樂園*bp)|#yQQ%c
show命令用來顯示gdb自身的狀態(tài)。BSD愛好者樂園Qb0l,u'@.A4M
使用set命令可以改變絕大多數(shù)由show顯示的信息
4a/eFbX KGg使用show radix命令來顯示基數(shù)
S1dm+@[?YHY用不帶任何參變量的set命令可以顯示所有可以設(shè)置的變量的值
-v)PO6HQ#I+lp U,b]有三個變量是不可以用set命令來設(shè)置的:
7PY7Q5Tfd$b?L2W;\show version顯示gdb的版本號
-{9^G,` sgshow copying顯示版權(quán)信息
'Eo C]\2B1@gshow warranty顯示擔保信息 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多