• <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 command! (轉(zhuǎn))

            Posted on 2008-06-14 13:37 T.S Liu 閱讀(1602) 評論(0)  編輯 收藏 引用 所屬分類: ubuntu
            1.what is gdb?
            一個調(diào)試器,能讓你觀察到正在運(yùn)行的程序的某個變量的值,和gcc, emacs組成構(gòu)建起整個gnu system的3劍客。

            2.How it work?
            首先要安裝,然后就可以 gdb application,進(jìn)入gdb模式,執(zhí)行(run)啟動例程。(list-顯示源碼)

            3.一個優(yōu)點(diǎn)
            GDB的函數(shù)調(diào)用是緩式的,也就是說只有當(dāng)變量真正需要時才會被計(jì)算。
            int c = add(1,1)
            printf("%d",c);

            gdb-->run-->print c -1222342. c的值直到打印的時候才會被計(jì)算。(這里可能有個開關(guān)來控制緩式計(jì)算)

            4.一個前提
            gcc 的時候加上 -g 或者 -ggdb,主要是生成供調(diào)試使用的某些信息。(emacs好像默認(rèn)是關(guān)閉這個選項(xiàng))

            5.存在圖形調(diào)試界面

            6.輸入help可以查看幫助
            help,會顯示命令的分類,help 類名

            7.how use?
            debug 3 program yourself.

            8.常用命令(From:http://my.donews.com/tangfl/2006/10/23/gdb-debug-example/)
              break NUM 在指定的行上設(shè)置斷點(diǎn)。
              bt 顯示所有的調(diào)用棧幀。該命令可用來顯示函數(shù)的調(diào)用順序。
              clear 刪除設(shè)置在特定源文件、特定行上的斷點(diǎn)。其用法為clear FILENAME:NUM
              continue 繼續(xù)執(zhí)行正在調(diào)試的程序。該命令用在程序由于處理信號或斷點(diǎn)而 導(dǎo)致停止運(yùn)行時。
              display EXPR 每次程序停止后顯示表達(dá)式的值。表達(dá)式由程序定義的變量組成。
              file FILE 裝載指定的可執(zhí)行文件進(jìn)行調(diào)試。
              help NAME 顯示指定命令的幫助信息。
              info break 顯示當(dāng)前斷點(diǎn)清單,包括到達(dá)斷點(diǎn)處的次數(shù)等。
              info files 顯示被調(diào)試文件的詳細(xì)信息。
              info func 顯示所有的函數(shù)名稱。
              info local 顯示當(dāng)函數(shù)中的局部變量信息。
              info prog 顯示被調(diào)試程序的執(zhí)行狀態(tài)。
              info var 顯示所有的全局和靜態(tài)變量名稱。
              kill 終止正被調(diào)試的程序。
              list 顯示源代碼段。
              make 在不退出 gdb 的情況下運(yùn)行 make 工具。
              next 在不單步執(zhí)行進(jìn)入其他函數(shù)的情況下,向前執(zhí)行一行源代碼。
              print EXPR 顯示表達(dá)式 EXPR 的值。
            backtrace 顯示程序中的當(dāng)前位置和表示如何到達(dá)當(dāng)前位置的棧跟蹤(同義詞:where)
            breakpoint 在程序中設(shè)置一個斷點(diǎn)
            cd 改變當(dāng)前工作目錄
            clear 刪除剛才停止處的斷點(diǎn)
            commands 命中斷點(diǎn)時,列出將要執(zhí)行的命令
            continue 從斷點(diǎn)開始繼續(xù)執(zhí)行
            delete 刪除一個斷點(diǎn)或監(jiān)測點(diǎn);也可與其他命令一起使用
            display 程序停止時顯示變量和表達(dá)時
            down 下移棧幀,使得另一個函數(shù)成為當(dāng)前函數(shù)
            frame 選擇下一條continue命令的幀
            info 顯示與該程序有關(guān)的各種信息
            jump 在源程序中的另一點(diǎn)開始運(yùn)行
            kill 異常終止在gdb 控制下運(yùn)行的程序
            list 列出相應(yīng)于正在執(zhí)行的程序的原文件內(nèi)容
            next 執(zhí)行下一個源程序行,從而執(zhí)行其整體中的一個函數(shù)
            print 顯示變量或表達(dá)式的值
            pwd 顯示當(dāng)前工作目錄
            pype 顯示一個數(shù)據(jù)結(jié)構(gòu)(如一個結(jié)構(gòu)或C++類)的內(nèi)容
            quit 退出gdb
            reverse-search 在源文件中反向搜索正規(guī)表達(dá)式
            run 執(zhí)行該程序
            search 在源文件中搜索正規(guī)表達(dá)式
            set variable 給變量賦值
            signal 將一個信號發(fā)送到正在運(yùn)行的進(jìn)程
            step 執(zhí)行下一個源程序行,必要時進(jìn)入下一個函數(shù)
            undisplay display命令的反命令,不要顯示表達(dá)式
            until 結(jié)束當(dāng)前循環(huán)
            up 上移棧幀,使另一函數(shù)成為當(dāng)前函數(shù)
            watch 在程序中設(shè)置一個監(jiān)測點(diǎn)(即數(shù)據(jù)斷點(diǎn))
            whatis 顯示變量或函數(shù)類型
            久久婷婷五月综合色高清| 久久97久久97精品免视看| 久久久久亚洲精品天堂| 2020最新久久久视精品爱| 久久亚洲精品无码播放| 久久精品国产99国产精品亚洲| 久久久一本精品99久久精品88| 久久精品国产99久久香蕉| 久久久久亚洲AV片无码下载蜜桃 | 久久久久亚洲AV片无码下载蜜桃| 国产精品久久久久久久| 久久影院亚洲一区| 99久久国产免费福利| 日韩精品无码久久久久久| 欧美久久久久久| 欧美成a人片免费看久久| 国产美女久久精品香蕉69| 一级女性全黄久久生活片免费 | 亚洲午夜久久久久久噜噜噜| 久久国产热这里只有精品| 999久久久无码国产精品| 久久综合亚洲色一区二区三区| 色综合久久久久网| 国产精品一久久香蕉产线看 | 亚洲中文久久精品无码ww16 | 97久久精品人人澡人人爽 | 精品国产乱码久久久久久浪潮| 久久精品亚洲一区二区三区浴池| 婷婷久久五月天| 无码八A片人妻少妇久久| 伊人精品久久久久7777| 亚洲欧洲中文日韩久久AV乱码| 欧美大战日韩91综合一区婷婷久久青草| 日本久久久精品中文字幕| 91久久精品视频| 天天做夜夜做久久做狠狠| 亚洲人AV永久一区二区三区久久| 日韩欧美亚洲综合久久| 色综合久久综合中文综合网| 久久精品国产99久久无毒不卡 | 久久亚洲AV无码西西人体|