• <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>

            無我

            讓內心永遠燃燒著偉大的光明的精神之火!
            靈活的思考,嚴謹的實現
            豪邁的氣魄、頑強的意志和周全的思考

            【轉】gdb常用命令

            本文轉自http://blog.csdn.net/gnuhpc/article/details/4368831

             

            調用gdb編譯需要在cc后面加 -g參數再加-o;

            [root@redhat home]#gdb 調試文件:啟動gdb

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

            (gdb) break n :在第n行處設置斷點

            (gdb) break func:在函數func()的入口處設置斷點

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

            (gdb) r:運行程序

            (gdb) n:單步執行

            (gdb) c:繼續運行

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

            (gdb) bt:查看函數堆棧

            (gdb) finish:退出函數

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

            (gdb) set args 參數:指定運行時的參數

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

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

                       set environment varname [=value] 設置環境變量。如:set env USER=hchen;

                        show environment [varname] 查看環境變量;

            (gdb) cd 相當于shell的cd;

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

            (gdb)info program: 來查看程序的是否在運行,進程號,被暫停的原因。

            (gdb)clear 行號n:清除第n行的斷點

            (gdb)delete 斷點號n:刪除第n個斷點

            (gdb)disable 斷點號n:暫停第n個斷點

            (gdb)enable 斷點號n:開啟第n個斷點

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

             

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

             

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

            當然,gdb的功能遠不止這些,包括多進程/多線程/信號/遠程調試等功能在這里均沒有提及,有需要的讀者可以參考其它信息。

             

            posted on 2011-09-15 10:42 Tim 閱讀(552) 評論(0)  編輯 收藏 引用 所屬分類: linux學習

            <2011年9月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導航

            統計

            公告

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

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            国产精品久久久久天天影视| 国产成人综合久久精品红| 欧美黑人激情性久久| 久久精品中文无码资源站| 国产一级做a爰片久久毛片| A级毛片无码久久精品免费| 一级做a爰片久久毛片看看| 久久精品九九亚洲精品| 久久www免费人成看国产片| 亚洲精品美女久久777777| 久久r热这里有精品视频| 亚洲а∨天堂久久精品| 国产亚洲精品美女久久久| 性做久久久久久久久久久| 久久综合精品国产二区无码| 久久国产精品免费一区| 2021久久国自产拍精品| 思思久久精品在热线热| 国产精品综合久久第一页| 亚洲成色www久久网站夜月| 久久天天躁狠狠躁夜夜av浪潮| 97精品国产97久久久久久免费 | 久久久高清免费视频| 99久久久精品| 色妞色综合久久夜夜| 伊人久久国产免费观看视频| 国产亚州精品女人久久久久久 | 久久久受www免费人成| 久久久久亚洲精品天堂| 伊人色综合久久天天人守人婷| 国产精品美女久久久久av爽| 久久A级毛片免费观看| 国产亚洲精久久久久久无码| 国产偷久久久精品专区| 亚洲乱码中文字幕久久孕妇黑人| 久久久久久精品久久久久| 国产69精品久久久久APP下载| 午夜精品久久久久成人| 久久亚洲精品国产精品婷婷| 麻豆久久久9性大片| 99久久夜色精品国产网站|