• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            無我

            讓內(nèi)心永遠(yuǎn)燃燒著偉大的光明的精神之火!
            靈活的思考,嚴(yán)謹(jǐn)?shù)膶?shí)現(xiàn)
            豪邁的氣魄、頑強(qiáng)的意志和周全的思考

            【轉(zhuǎn)】gdb常用命令

            本文轉(zhuǎn)自http://blog.csdn.net/gnuhpc/article/details/4368831

             

            調(diào)用gdb編譯需要在cc后面加 -g參數(shù)再加-o;

            [root@redhat home]#gdb 調(diào)試文件:啟動(dòng)gdb

            (gdb) l :(字母l)從第一行開始列出源碼

            (gdb) break n :在第n行處設(shè)置斷點(diǎn)

            (gdb) break func:在函數(shù)func()的入口處設(shè)置斷點(diǎn)

            (gdb) info break: 查看斷點(diǎn)信息

            (gdb) r:運(yùn)行程序

            (gdb) n:單步執(zhí)行

            (gdb) c:繼續(xù)運(yùn)行

            (gdb) p 變量 :打印變量的值

            (gdb) bt:查看函數(shù)堆棧

            (gdb) finish:退出函數(shù)

            (gdb) shell 命令行:執(zhí)行shell命令行

            (gdb) set args 參數(shù):指定運(yùn)行時(shí)的參數(shù)

            (gdb) show args:查看設(shè)置好的參數(shù)

            (gdb) show paths:查看程序運(yùn)行路徑;

                       set environment varname [=value] 設(shè)置環(huán)境變量。如:set env USER=hchen;

                        show environment [varname] 查看環(huán)境變量;

            (gdb) cd 相當(dāng)于shell的cd;

            (gdb)pwd :顯示當(dāng)前所在目錄

            (gdb)info program: 來查看程序的是否在運(yùn)行,進(jìn)程號(hào),被暫停的原因。

            (gdb)clear 行號(hào)n:清除第n行的斷點(diǎn)

            (gdb)delete 斷點(diǎn)號(hào)n:刪除第n個(gè)斷點(diǎn)

            (gdb)disable 斷點(diǎn)號(hào)n:暫停第n個(gè)斷點(diǎn)

            (gdb)enable 斷點(diǎn)號(hào)n:開啟第n個(gè)斷點(diǎn)

            (gdb)step:單步調(diào)試如果有函數(shù)調(diào)用,則進(jìn)入函數(shù);與命令n不同,n是不進(jìn)入調(diào)用的函數(shù)的

             

            • list :簡記為 l ,其作用就是列出程序的源代碼,默認(rèn)每次顯示10行。
            • list 行號(hào):將顯示當(dāng)前文件以“行號(hào)”為中心的前后10行代碼,如:list 12
            • list 函數(shù)名:將顯示“函數(shù)名”所在函數(shù)的源代碼,如:list main
            • list :不帶參數(shù),將接著上一次 list 命令的,輸出下邊的內(nèi)容。
            注意 :如果運(yùn)行l(wèi)ist 命令得到類似如下的打印,那是因?yàn)樵诰幾g程序時(shí)沒有加入 -g 選項(xiàng):
            (gdb) list
            1       ../sysdeps/i386/elf/start.S: No such file or directory.
                    in ../sysdeps/i386/elf/start.S

             

            • run:簡記為 r ,其作用是運(yùn)行程序,當(dāng)遇到斷點(diǎn)后,程序會(huì)在斷點(diǎn)處停止運(yùn)行,等待用戶輸入下一步的命令。
            • 回車:重復(fù)上一條命令。
            • set args:設(shè)置運(yùn)行程序時(shí)的命令行參數(shù),如:set args 33 55
            • show args:顯示命令行參數(shù)
            • continue:簡訊為 c ,其作用是繼續(xù)運(yùn)行被斷點(diǎn)中斷的程序。
            • break:為程序設(shè)置斷點(diǎn)。
            • break 行號(hào):在當(dāng)前文件的“行號(hào)”處設(shè)置斷點(diǎn),如:break  33
            • break 函數(shù)名:在用戶定義的函數(shù)“函數(shù)名”處設(shè)置斷點(diǎn),如:break cb_button
            • info breakpoints:顯示當(dāng)前程序的斷點(diǎn)設(shè)置情況
            • disable breakpoints Num:關(guān)閉斷點(diǎn)“Num”,使其無效,其中“Num”為 info breakpoints 中顯示的對應(yīng)值
            • enable breakpoints Num:打開斷點(diǎn)“Num”,使其重新生效
            • step:簡記為 s ,單步跟蹤程序,當(dāng)遇到函數(shù)調(diào)用時(shí),則進(jìn)入此函數(shù)體(一般只進(jìn)入用戶自定義函數(shù))。
            • next:簡記為 n,單步跟蹤程序,當(dāng)遇到函數(shù)調(diào)用時(shí),也不進(jìn)入此函數(shù)體;此命令同 step 的主要區(qū)別是,step 遇到用戶自定義的函數(shù),將步進(jìn)到函數(shù)中去運(yùn)行,而 next 則直接調(diào)用函數(shù),不會(huì)進(jìn)入到函數(shù)體內(nèi)。
            • until:當(dāng)你厭倦了在一個(gè)循環(huán)體內(nèi)單步跟蹤時(shí),這個(gè)命令可以運(yùn)行程序直到退出循環(huán)體。
            • finish: 運(yùn)行程序,直到當(dāng)前函數(shù)完成返回,并打印函數(shù)返回時(shí)的堆棧地址和返回值及參數(shù)值等信息。
            • stepi或nexti:單步跟蹤一些機(jī)器指令。
            • print 表達(dá)式:簡記為 p ,其中“表達(dá)式”可以是任何當(dāng)前正在被測試程序的有效表達(dá)式,比如當(dāng)前正在調(diào)試C語言的程序,那么“表達(dá)式”可以是任何C語言的有效表達(dá)式,包括數(shù)字,變量甚至是函數(shù)調(diào)用。
            • print a:將顯示整數(shù) a 的值
            • print ++a:將把 a 中的值加1,并顯示出來
            • print name:將顯示字符串 name 的值
            • print gdb_test(22):將以整數(shù)22作為參數(shù)調(diào)用 gdb_test() 函數(shù)
            • print gdb_test(a):將以變量 a 作為參數(shù)調(diào)用 gdb_test() 函數(shù)
            • bt:顯示當(dāng)前程序的函數(shù)調(diào)用堆棧。
            • display 表達(dá)式:在單步運(yùn)行時(shí)將非常有用,使用display命令設(shè)置一個(gè)表達(dá)式后,它將在每次單步進(jìn)行指令后,緊接著輸出被設(shè)置的表達(dá)式及值。如: display a
            • watch 表達(dá)式:設(shè)置一個(gè)監(jiān)視點(diǎn),一旦被監(jiān)視的“表達(dá)式”的值改變,gdb將強(qiáng)行終止正在被調(diào)試的程序。如: watch a
            • kill:將強(qiáng)行終止當(dāng)前正在調(diào)試的程序
            • help 命令:help 命令將顯示“命令”的常用幫助信息
            • call 函數(shù)(參數(shù)):調(diào)用“函數(shù)”,并傳遞“參數(shù)”,如:call  gdb_test(55)
            • layout:用于分割窗口,可以一邊查看代碼,一邊測試:
            • layout src:顯示源代碼窗口
            • layout asm:顯示反匯編窗口
            • layout regs:顯示源代碼/反匯編和CPU寄存器窗口
            • layout split:顯示源代碼和反匯編窗口
            • Ctrl + L:刷新窗口
            • quit:簡記為 q ,退出gdb

            當(dāng)然,gdb的功能遠(yuǎn)不止這些,包括多進(jìn)程/多線程/信號(hào)/遠(yuǎn)程調(diào)試等功能在這里均沒有提及,有需要的讀者可以參考其它信息。

             

            posted on 2011-09-15 10:42 Tim 閱讀(545) 評(píng)論(0)  編輯 收藏 引用 所屬分類: linux學(xué)習(xí)

            <2007年10月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            本博客原創(chuàng)文章,歡迎轉(zhuǎn)載和交流。不過請注明以下信息:
            作者:TimWu
            郵箱:timfly@yeah.net
            來源:www.shnenglu.com/Tim
            感謝您對我的支持!

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            人妻久久久一区二区三区| 久久99精品国产99久久6| 久久久亚洲欧洲日产国码是AV| 久久久久99这里有精品10 | 久久精品黄AA片一区二区三区| 国产99精品久久| 久久久人妻精品无码一区| 亚洲AV日韩精品久久久久久久| 香蕉久久一区二区不卡无毒影院| 亚洲国产综合久久天堂| 久久久久AV综合网成人| 亚洲欧美久久久久9999| 精品久久人妻av中文字幕| 久久综合亚洲色HEZYO国产| 久久不见久久见免费视频7| 久久91精品国产91久| 国产成人综合久久精品尤物| 亚洲av伊人久久综合密臀性色| 狠狠久久综合| 丁香五月网久久综合| 午夜天堂精品久久久久| 久久青青国产| 国内精品久久久久久久影视麻豆 | 久久久久99精品成人片欧美 | 久久精品黄AA片一区二区三区| 午夜精品久久久久久久无码| 99久久国产综合精品网成人影院 | 精品乱码久久久久久夜夜嗨| 久久婷婷国产综合精品| 久久国产亚洲精品| 人妻中文久久久久| 99精品久久久久久久婷婷| 99久久精品国内| 久久久久99精品成人片欧美| 无码人妻久久一区二区三区免费丨| 日韩欧美亚洲国产精品字幕久久久 | 99久久综合狠狠综合久久| 国产日产久久高清欧美一区| 久久99国产精品尤物| 91久久婷婷国产综合精品青草| 久久青青草原精品国产|