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

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            dbx是unix下普遍的源碼調(diào)試工具, 掌握好了dbx的使用,
            無疑象增添了unix下編程的一把利器研究了一下午dbx的
            連機(jī)文檔,發(fā)現(xiàn)dbx很是簡(jiǎn)單易用現(xiàn)在簡(jiǎn)單介紹一下dbx的
            使用方法,讓更多的朋友免去獨(dú)自研究的苦楚dbx主要用來
            調(diào)試用f77或cc等編譯工具生成的fortran和c語言的源代碼
            當(dāng)然該程序必須在調(diào)試過程中用-g參數(shù)包含入調(diào)試信息,
            比方說我在unix下編寫了一個(gè)hello.c的程序:

            void hello();

            main()
            {
            int i,j;

            i=1;
            j=2;
            i=i+1;

            hello();
            printf("%d,%d\n",i,j);
            }

            void hello()
            {
            printf("hello");
            }

            先用cc -o helloexe -g hello.c編譯生成帶調(diào)試信息的helloexe文件
            然后用dbx helloexe來調(diào)試該文件
            顯示dbx)這個(gè)dbx下調(diào)試的提示符
            現(xiàn)在還不處在調(diào)試狀態(tài)下,需要首先進(jìn)入調(diào)試狀態(tài),
            這樣泥需要先確定從哪里開始第一次中斷,以便以后的跟蹤調(diào)試
            這里從第7行開始調(diào)試,用命令:
            dbx)stop at 7
            設(shè)置好斷點(diǎn)。
            用如下命令開始運(yùn)行;
            dbx)run
            這時(shí)程序運(yùn)行到第7行停止下來,
            并顯示下一行將要執(zhí)行的程序
            7: i=i+1
            這時(shí),你可以用:
            dbx)print i命令來查看i變量的值
            顯示
            1
            或者用printf "%d",i來顯示用c語言格式的輸出。(aix下沒有printf命令)
            對(duì)以后比較負(fù)責(zé)的數(shù)組什么的,用
            dbx)duel i方式可能更加顯示的方便。
            以后泥可以用
            dbx)step (step相當(dāng)于trace into,就是可以進(jìn)入線程內(nèi)部,比如本例子中hello()模
            塊)
            或者
            dbx)next (next不進(jìn)入hello()模塊內(nèi)部)
            來執(zhí)行下一行程序。

            dbx)cont 命令可以直接運(yùn)行到結(jié)束。
            dbx中控制命令多多,功能十分強(qiáng)大的。
            查看源碼可以用
            dbx)list begin,end
            就顯示hello.c文件中從begin到end行的所有程序,并且配上了行號(hào)。

            dbx)file <filename>可以改變泥要查看的源碼文件名稱.

            下面是查看了dbx的man手冊(cè)后對(duì)一些常用/使用命令的中文說明
            這些命令對(duì)普通的調(diào)試已經(jīng)足夠了,一些多線程的調(diào)試命令就不加以介紹了
            dbx使用指南:
            1:實(shí)用命令
            quit/q 退出
            q 退出
            run arg1 arg2 ... 用參數(shù)運(yùn)行現(xiàn)有進(jìn)程
            r 用上次的參數(shù)再次運(yùn)行
            stop at <line> 在第line行設(shè)斷點(diǎn)
            stop at <proc> 在過程proc被調(diào)用處設(shè)斷點(diǎn)
            cont <singal> 繼續(xù)運(yùn)行到記號(hào)(斷點(diǎn)或其他)處
            return 執(zhí)行完目前的進(jìn)程返回
            print <exp> ... 打印表達(dá)式的值
            printf "string",exp,... 用c語言的格式打印結(jié)果
            where 打印當(dāng)前調(diào)試狀態(tài),包括當(dāng)前進(jìn)程等信息
            func <proc> 看當(dāng)前運(yùn)行進(jìn)程名/移動(dòng)到調(diào)用proc進(jìn)程的母進(jìn)程處
            file <file> 查看的文件切換到file文件處
            list <exp1>,<exp2> 從file文件中列出從exp1行到exp2行
            list <exp>:<int> 列出file文件中從exp行開始的int行
            whatis <variable> 顯示變量的類型
            sh 嶄時(shí)進(jìn)入sh狀態(tài)
            sh <shell command> 執(zhí)行一shell命令
            2:常用命令說明
            alias name "string" 把string內(nèi)容定義為一縮略語name
            help section 尋找某指令的幫助
            playback input <file> 從file中調(diào)入調(diào)試命令流
            playback output <file> 輸出file中的調(diào)試命令流
            record input <file> 把調(diào)試過程輸出到file中
            record output <file> 把命令的運(yùn)行輸出保存到file中
            history 顯示歷史命令
            hed 編輯歷史調(diào)試命令
            !<int> 運(yùn)行歷史命令流中第int個(gè)命令
            !-<int> 運(yùn)行歷史命令中倒數(shù)第int個(gè)命令
            !<string> 運(yùn)行歷史命令流中以string打頭的命令
            !! 重復(fù)上一個(gè)命令
            command;command ... 多調(diào)試命令間用";"隔開
            step <int> 向前追蹤<int>步,進(jìn)入線程
            next <int> 向前追蹤<int>步,不進(jìn)入線程
            delete all 清所有斷點(diǎn)
            listobj 列出目前使用的obj單元
            listregions 列出被用到的內(nèi)存區(qū)
            enable <int>/disable <int> 恢復(fù)/禁用<int>號(hào)斷點(diǎn)
            catch 顯示所有碰到的記號(hào)
            cont at <line> 運(yùn)行直到line行
            intercept all 在所有例外處都中斷
            bx chat 在所有出現(xiàn)char打頭的異常處中斷
            kill <pid> 殺死pid線程
            goto <line> 從line行開始運(yùn)行
            stop <var> 當(dāng)var產(chǎn)生變化時(shí)中斷
            stop <proc> 當(dāng)進(jìn)入proc進(jìn)程時(shí)中斷
            stop [var] [at <line>] if <exp> 條件中斷
            trace <var> 當(dāng)var變化時(shí)輸出其原值和新值
            trace <proc> 當(dāng)進(jìn)入進(jìn)程時(shí)打印出母進(jìn)程和參數(shù)
            when if <exp> {command_list} 當(dāng)條件為真時(shí)執(zhí)行命令列
            when at <line> [if <exp>] {command_list} 在遇到line行時(shí)如果條件為真執(zhí)行命令

            duel <exp> 一種比較好的變量輸出方式
            printregs 輸出所有寄存器的值
            status 當(dāng)前狀態(tài)
            /<string> 向下尋找file中的string字符串
            ?<string> 向上尋找file中的string字符串
            set 設(shè)定或顯示系統(tǒng)參數(shù)值
            日韩影院久久| 欧美一区二区三区久久综| 99久久成人18免费网站| 亚洲国产精品热久久| 婷婷久久精品国产| 97久久精品无码一区二区| 久久精品免费网站网| 天天爽天天狠久久久综合麻豆| 国产精品免费久久久久久久久| 热99RE久久精品这里都是精品免费| 精品久久久久久成人AV| 日韩电影久久久被窝网| 99久久婷婷免费国产综合精品| 久久天天日天天操综合伊人av| 亚洲精品国产字幕久久不卡| 久久久国产精华液| 久久99精品国产麻豆| 亚洲国产成人久久笫一页| 亚洲国产精品久久久久| 久久久久人妻精品一区二区三区 | 国产成人精品久久| 久久久精品2019免费观看| 天天综合久久一二三区| 久久综合欧美成人| 99国产欧美精品久久久蜜芽 | 久久se这里只有精品| 久久亚洲精精品中文字幕| 色青青草原桃花久久综合| 久久99精品国产麻豆婷婷| 99久久精品免费国产大片| 秋霞久久国产精品电影院| 国内精品人妻无码久久久影院| 久久天天躁狠狠躁夜夜96流白浆| 蜜桃麻豆www久久国产精品| 狠狠色伊人久久精品综合网| 丁香久久婷婷国产午夜视频| 国产精品久久久99| 爱做久久久久久| 久久久久18| 中文字幕无码精品亚洲资源网久久| 亚洲国产精品狼友中文久久久|