freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

gdb用戶使用手冊-免費閱讀

2024-09-17 15:52 上一頁面

下一頁面
  

【正文】 i++) 19 { 20 result += i。 6 for(i=0。下面是幾個相關(guān)于GDB語言環(huán)境的命令: show language 查看當(dāng)前的語言環(huán)境。一般說來,GDB會根據(jù)你所調(diào)試的程序來確定當(dāng)然的調(diào)試語言,比如:發(fā)現(xiàn)文件名后綴為“.c”的,GDB會認為是C程序。 single命令和shell的kill命令不同,系統(tǒng)的kill命令發(fā)信號給被調(diào)試程序時,是由GDB截獲的,而single命令所發(fā)出一信號則是直接發(fā)給被調(diào)試程序的。 熟悉匯編的人都知道,程序運行時,有一個寄存器用于保存當(dāng)前代碼所在的內(nèi)存地址。 跳轉(zhuǎn)執(zhí)行一般來說,被調(diào)試程序會按照程序代碼的運行順序依次執(zhí)行。(包括浮點寄存器) info registers regname ... 查看所指定的寄存器的情況。環(huán)境變量沒有類型,你可以給環(huán)境變量定義任一的類型。GDB會以$1, $2, $3 .....這樣的方式為你每一個print命令編上號。 show print object 查看對象選項的設(shè)置。 struct thing { Species it。 set print pretty on 如果打開printf pretty這個選項,那么當(dāng)GDB顯示結(jié)構(gòu)體時會比較漂亮。 set print array set print array on 打開數(shù)組顯示,打開后當(dāng)數(shù)組顯示時,每個元素占一行,如果不打開的話,每個元素則以逗號分隔。于是當(dāng)程序停下后,就會出現(xiàn)源代碼和機器指令碼相對應(yīng)的情形,這是一個很有意思的功能。當(dāng)我們指定了字節(jié)長度后,GDB會從指內(nèi)存定的內(nèi)存地址開始,讀寫指定字節(jié),并把其當(dāng)作一個值取出來。e39。 d 按十進制格式顯示變量。比如數(shù)組的一段,或是動態(tài)分配的數(shù)據(jù)的大小。39。 表達式的語法應(yīng)該是當(dāng)前所調(diào)試的語言的語法,由于C/C++是一種大眾型的語言,所以,本文中的例子都是關(guān)于C/C++的。 show directories 顯示定義了的源文件搜索路徑。 reversesearch regexp 全部搜索。 一般來說在list后面可以跟以下這們的參數(shù): linenum 行號。 list 顯示當(dāng)前行后面的源程序。 info catch 打印出當(dāng)前的函數(shù)中的異常處理信息。 downsilently n 對應(yīng)于 down 命令。 frame n f n n是一個從0開始的整數(shù),是棧中的層編號。那怕是主進程在被單步調(diào)試時。GDB很容易幫你完成這一工作。 stop 當(dāng)被調(diào)試的程序收到信號時,GDB會停住你的程序。GDB有能力在你調(diào)試程序的時候處理任何一種信號,你可以告訴GDB需要處理哪一種信號。 until 或 u 當(dāng)你厭倦了在一個循環(huán)體內(nèi)單步跟蹤時,這個命令可以運行程序直到退出循環(huán)體。 next count 同樣單步跟蹤,如果有函數(shù)調(diào)用,他不會進入該函數(shù)。也可以使用step或next命令單步跟蹤程序。 line number:867 [3] file:。當(dāng)程序被該斷點停住時,gdb會依次運行命令列表中的命令。(只有break和watch命令支持if,catch目前暫不支持if) condition bnum expression 修改斷點號為bnum的停止條件為expression。 disable [breakpoints] [range...] disable所指定的停止點,breakpoints為停止點號。 clear 清除所有的已定義的停止點。(catch為關(guān)鍵字) exec 調(diào)用系統(tǒng)調(diào)用exec時。 rwatch expr 當(dāng)表達式(變量)expr被讀時,停住程序。 break filename:function 在源文件filename的function函數(shù)的入口處停住。如果要恢復(fù)程序運行,可以使用c或是continue命令。如:tty /dev/ttyb 調(diào)試已運行的程序調(diào)試已運行的程序有兩種方法:在UNIX下用ps查看正在運行的程序的PID(進程ID),然后用gdb program PID格式掛接正在運行的程序。如:set env USER=hchen show environment [varname] 查看環(huán)境變量。程序的運行,你有可能需要設(shè)置下面四方面的事。directory directoryd directory加入一個源文件的搜索路徑。如q即可唯一標(biāo)識quit。因此編寫此文檔,對GDB的常用調(diào)試命令進行說明。也可以直接help mand來查看命令的幫助。GDB在啟動時,還可以添加一些啟動開關(guān),常用的有:symbols file s file 從指定文件中讀取符號表。 在GDB中啟動程序當(dāng)以gdb program方式啟動gdb后,gdb會在PATH路徑和當(dāng)前目錄中搜索program的源文件。 path dir 可設(shè)定程序的運行路徑。 info terminal 顯示你程序用到的終端的模式。以便于你查看運行時的變量,以及運行時的流程。 break +offset break offset 在當(dāng)前行號的前面或后面的offset行停住。 查看斷點時,可使用info命令,如下所示:(注:n表示斷點號) info breakpoints [n] info break [n] 設(shè)置觀察點(WatchPoint)觀察點一般來觀察某個表達式(變量也是一種表達式)的值是否有變化了,如果有變化,馬上停住程序。設(shè)置捕捉點的格式為: catch event 當(dāng)event發(fā)生時,停住程序。(unload為關(guān)鍵字,目前此功能只在HPUX下有用) tcatch event 只設(shè)置一次捕捉點,當(dāng)程序停住以后,應(yīng)點被自動刪除。range 表示斷點號的范圍(如:37)。 停止條件維護前面在說到設(shè)置斷點時,我們提到過可以設(shè)置一個條件,當(dāng)條件成立時,程序自動停止,這是一個非常強大的功能,這里,我想專門說說這個條件的相關(guān)維護命令。也就是說,當(dāng)運行的程序在被停止住時,我們可以讓其自動運行一些別的命令,這很有利行自動化調(diào)試。否則的話,GDB會給你列出一個斷點菜單供你選擇你所需要的斷點。 line number:735 2 4 6 Breakpoint 1 at 0xb26c: file , line 867. Breakpoint 2 at 0xb344: file , line 875. Breakpoint 3 at 0xafcc: file , line 846. Multiple breakpoints were set. Use the delete mand to delete unwanted breakpoints. (gdb) 可見,GDB列出了所有after的重載函數(shù),你可以選一下列表編號就行了。進入函數(shù)的前提是,此函數(shù)被編譯有debug信息。 set stepmod off 關(guān)閉stepmode模式。尤其是UNIX,比較重要應(yīng)用程序一般都會處理信號。一旦被調(diào)試的程序接收到信號,運行程序馬上會被GDB停住,以供調(diào)試。 nopass ignore 當(dāng)被調(diào)試的程序收到信號時,GDB不會讓被調(diào)試程序來處理這個信號。如: (gdb) break :13 thread 28 if bartab lim 當(dāng)你的程序被GDB停住時,所有的運行線程都會被停住。如: (gdb) bt 0 func (n=250) at :6 1 0x08048524 in main (argc=1, argv=0xbffff674) at :30 2 0x400409ed in __libc_start_main () from /lib/ 從上可以看出函數(shù)的調(diào)用棧信息:__libc_start_main main() func() backtrace n bt n n是一個正整數(shù),表示只打印棧頂上n層的棧信息。如果你不想讓其打出信息。 saved eip 0x8048524 called by frame at 0xbffff60c source language c. Arglist at 0xbffff5d4, args: n=250 Locals at 0xbffff5d4, Previous frame39。還是來看一看查看源代碼的GDB命令吧。 list命令還有下面的用法: list first, last 顯示從first行到last行之間的源代碼。 filename:function 哪個文件中的哪個函數(shù)。如果你要指定多個路徑,UNIX下你可以使用“:”,Windows下你可以使用“。print命令的格式是: print expr print /f expr expr是表達式,是你所調(diào)試的程序的語言的表達式(GDB可以調(diào)試多種編程語言),f是輸出的格式,比如,如果要把表達式按16進制的格式輸出,那么就是/x。 程序變量在GDB中,你可以隨時查看以下三種變量的值: 全局變量(所有文件可見的) 靜態(tài)全局變量(當(dāng)前文件可見的) 局部變量(當(dāng)前Scope可見的) 如果你的局部變量和全局變量發(fā)生沖突(也就是重名),一般情況下是局部變量會隱藏全局變量,也就是說,如果一個全局變量和一個函數(shù)中的局部變量同名時,如果當(dāng)前停止點在函數(shù)中,用print顯示出的變量的值會是函數(shù)中的局部變量的值。一般來說,幾乎所有的編譯器都支持編譯優(yōu)化的開關(guān),例如,GNU的C/C++編譯器GCC,你可以使用“gstabs”選項來解決這個問題。但你也可以自定義GDB的輸出的格式。 c 按字符格式顯示變量。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。相關(guān)的GDB命令是display。 設(shè)置顯示選項GDB中關(guān)于顯示的選項比較多,這里我只例舉大多數(shù)常用的選項。 show print elements 查看print elements的選項信息。例如有以下數(shù)據(jù)結(jié)構(gòu): typedef enum {Tree, Bug} Species。 struct thing foo = {Tree, {Acorn}}。其默認是關(guān)閉的。使用GDB的set命令。輸入這樣的命令后,只用敲回車,重復(fù)執(zhí)行上一條語句,環(huán)境變量會自動累加,從而完成逐個輸出的功能。 修改變量值修改被調(diào)試程序運行時的變量值,在GDB中很容易實現(xiàn),使用GDB的print命令即可完成。 jump address 這里的address是代碼行的內(nèi)存地址。這非常方便于程序的調(diào)試,可以在程序運行的任意位置設(shè)置斷點,并在該斷點用GDB產(chǎn)生一個信號量,這種精確地在某處產(chǎn)生信號非常有利程序的調(diào)試。并顯示函數(shù)的返回值,如果函數(shù)返回值是void,那么就不顯示。例如C/C++中對指針的語法是*p,而在Modula2中則是p^。使用set language命令即可做到。 17 long result = 0。 25 return 0;26 }編譯生成執(zhí)行文件:(linux下) [wulcpslinux ~]$ gcc g o test使用GDB調(diào)試:[wulcpslinux ~]$ gdb test 。 9 } 10 return sum。 info source 查看當(dāng)前文件的程序語言。也就是說,GDB會根據(jù)你所調(diào)試的程序的語言,來設(shè)置自己的語言環(huán)境,并讓GDB的命
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1