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

            glxhyt

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              15 隨筆 :: 0 文章 :: 4 評(píng)論 :: 0 Trackbacks
            [轉(zhuǎn)自] http://hi.baidu.com/brady_home/blog/item/6b92aa8ffdfee2e6f01f369b.html

            gdb調(diào)試正在運(yùn)行的進(jìn)程
            2009年04月18日 星期六 下午 08:21
            有時(shí)會(huì)遇到一種很特殊的調(diào)試需求,對(duì)當(dāng)前正在運(yùn)行的其它進(jìn)程進(jìn)行調(diào)試(正是我今天遇到的情形)。這種情況有可能發(fā)生在那些無(wú)法直接在調(diào)試器中運(yùn)行的進(jìn)程身上,例如有的進(jìn)程 只能在系統(tǒng)啟動(dòng)時(shí)運(yùn)行。另外如果需要對(duì)進(jìn)程產(chǎn)生的子進(jìn)程進(jìn)行調(diào)試的話,也只能采用這種方式。GDB可以對(duì)正在執(zhí)行的程序進(jìn)行調(diào)度,它允許開發(fā)人員中斷程序 并查看其狀態(tài),之后還能讓這個(gè)程序正常地繼續(xù)執(zhí)行。

            GDB提供了兩種方式來(lái)調(diào)試正在運(yùn)行的進(jìn)程:一種是在GDB命令行上指定進(jìn)程的PID,另一種是在GDB中使用“attach”命令。例如,開發(fā)人員可以先啟動(dòng)debugme程序,讓其開始等待用戶的輸入。示例如下:

            #./debugme
            Enter a string to count words:


            接下去在另一個(gè)虛擬控制臺(tái)中用下面的命令查出該進(jìn)程對(duì)應(yīng)的進(jìn)程號(hào):

            # ps -ax | grep debugme
            555 pts/1 S 0:00 ./debugme


            得到進(jìn)程的PID后,就可以使用GDB對(duì)其進(jìn)行調(diào)試了:

            # gdb debugme 555
            GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
            Attaching to program: /home/xiaowp/debugme, process 555
            Reading symbols from /lib/libc.so.6...done.
            ……


            在上面的輸出信息中,以Attaching to program開始的行表明GDB已經(jīng)成功地附加在PID為555的進(jìn)程上了。另外一種連接到其它進(jìn)程的方法是先用file命令加載調(diào)試時(shí)所需的符號(hào)表,然后再通過(guò)“attaché”命令進(jìn)行連接:

            (gdb) file /home/xiaowp/debugme
            Reading symbols from /home/xiaowp/debugme...done.
            (gdb) attach 555
            ……


            如果想知道程序現(xiàn)在運(yùn)行到了哪里,同樣可以使用“backtrace”命令。當(dāng)然也可以使用“step”命令對(duì)程序進(jìn)行單步調(diào)試。

            在完成調(diào)試之后,不要忘記用detach命令斷開連接,讓被調(diào)試的進(jìn)程可以繼續(xù)正常運(yùn)行。
            posted on 2011-11-27 00:22 郭龍 閱讀(460) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国内精品久久久久影院亚洲| AV无码久久久久不卡网站下载| 亚洲国产成人久久综合一| 久久精品国产精品青草app| 国产成人久久精品二区三区| 蜜桃麻豆www久久国产精品| 久久精品无码专区免费东京热| 久久99国产精一区二区三区| 国产精品美女久久久久AV福利| 久久精品国产亚洲αv忘忧草 | 亚洲另类欧美综合久久图片区| 四虎国产精品成人免费久久| 久久国产精品99久久久久久老狼 | 亚洲午夜精品久久久久久人妖| 久久精品视频一| 国产亚州精品女人久久久久久 | 日韩精品久久久久久免费| 亚洲国产精品人久久| 亚洲人成伊人成综合网久久久| 久久久久人妻一区精品果冻| 99麻豆久久久国产精品免费| 99精品国产免费久久久久久下载| 国产精品成人99久久久久| AV狠狠色丁香婷婷综合久久| 91麻豆国产精品91久久久| 久久亚洲AV无码西西人体| 亚洲国产精品久久久久婷婷软件 | 久久se精品一区二区影院| 91精品国产高清久久久久久io| 久久婷婷色综合一区二区| 久久人人爽人爽人人爽av | 久久精品草草草| 久久婷婷五月综合色高清| 一本一本久久a久久综合精品蜜桃| 久久人人爽人人精品视频| 久久亚洲高清综合| 国内精品久久久久久久久| 久久精品国产第一区二区| 久久精品免费一区二区三区| 亚洲国产精品久久久久久| 99久久99久久精品国产片|