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

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            linux下常見的debug工具的使用

            Posted on 2011-06-10 13:43 S.l.e!ep.¢% 閱讀(992) 評論(0)  編輯 收藏 引用 所屬分類: Unix
            ?????僅僅是介紹一些使用心得,并非manual,欲知詳情請google。。。
            ???? ---------------------------------------------------------------------------------------------------------------------------
            ?????在實驗室里混了這么久,驀然回首,發現其實自己主要做的工作就是debug和fix bug。?!,F在將自己debug時用到的一些工具分享出來,share給有需要的朋友,大牛看了請一笑了之。

            ???? (1)GDB:最正宗最傳統的debug工具,如果做kernel的開發,還有KDB可以使用。
            ???? 小tips:
            ???? <1>可以attach到某一個進程進行調試,注意如果進程里有fork和exec調用來切換到其它進程的話,需要特殊處理
            ???? <2>多線程也可以用gdb來調試,但是我用了之后感覺并不是很好。。。
            ???? <3>如果遇到段錯誤或者程序crush這樣的錯誤,可以使用gdb來調試core dump文件,但是生成core dump需要先進行設置(具體請google~)
            ???? <4>注意內聯函數是不能被gdb跟蹤的
            ?????<5>gdb很強大,請耐心點看manual。。。
            ?????鏈接: http://www.gnu.org/software/gdb/documentation/

            ???? (2)wireshark:雖然不是調試工具,但如果是做網絡程序的開發,非常有用。
            ?????小tips:
            ???? <1>如果程序里的通信協議是使用字符串編碼,非常好,但是如果使用二進制編碼,wireshark不好用
            ???? <2>對于tcp流,可以在某一個包點擊右鍵:"follow tcp stream",可以看到該tcp流的全部信息
            ???? <3>如果僅僅想看截取包的開頭處的信息,可以將包截短,在"capture options"里的"limit each packet to"設置?
            ???? <4>windows和linux下都有wireshark。。。
            ???? 鏈接: http://www.wireshark.org/docs/wsug_html_chunked/

            ???? (3)strace:截獲system call,如果能夠看到某個system call的返回值錯誤,可以很輕松地找到bug原因。
            ?????小tips:??????
            ???? <1>strace也可以像gdb一樣去attach一個正在運行的進程,使用-p pid(進程號)即可
            ???? <2>strace的輸出比較多,可以-o?輸出到文件里,分析的時候請耐心。。。
            ???? 鏈接: http://people.gnome.org/~newren/tutorials/developing-with-gnome/html/ch03s02.html

            ????? (4)inotify-tools:截獲文件系統觸發的事件,這個是基于inotify框架來寫的一個工具,但是感覺和strace相反,它給出的信息過于少。
            ?????鏈接: https://github.com/rvoicilas/inotify-tools/wiki/

            ???? (5)printf大法:最原始的未必就不好,有時也很有用。
            ?????除了傳統的printf,還有一些類似的東西
            ?????perror:打印程序errorno http://pubs.opengroup.org/onlinepubs/009695399/functions/perror.html
            ?????查看log信息:如果你是去修改別人的開源程序(經常有實驗室這樣干吧),那么它的log信息就很重要,記得按照你的需求去設置log level
            ?????printk:kernel開發中的printf

            ???? ----------------------------------------------------------------------------------------------------------------------------
            ?????即使把太平洋里水全部倒出來,也澆不息我debug的熱情!但是我能把太平洋的水全倒出來嗎?不能,所以我對debug沒有熱情。
            久久国产香蕉一区精品| 性高湖久久久久久久久AAAAA| 亚洲精品美女久久久久99小说 | 精品99久久aaa一级毛片| 99麻豆久久久国产精品免费| 精品一区二区久久| 久久强奷乱码老熟女网站| 精品久久久久久久国产潘金莲| 一本色道久久88精品综合| 久久久久成人精品无码中文字幕| 精品久久久久久久| 99久久综合狠狠综合久久止| 久久97精品久久久久久久不卡| 久久精品国产亚洲AV电影| 久久精品中文騷妇女内射| 粉嫩小泬无遮挡久久久久久| 久久久精品人妻无码专区不卡| 精品无码久久久久久久动漫| 久久久久亚洲精品天堂久久久久久 | 成人久久精品一区二区三区| 97精品国产91久久久久久| 久久电影网一区| 久久有码中文字幕| 99久久夜色精品国产网站| 久久精品亚洲日本波多野结衣| 99re久久精品国产首页2020| 国产精品亚洲美女久久久| 久久婷婷色综合一区二区| 精品免费久久久久国产一区| 日日狠狠久久偷偷色综合96蜜桃| 亚洲国产精品成人久久蜜臀| 人妻丰满AV无码久久不卡 | 久久综合精品国产一区二区三区 | 久久青草国产手机看片福利盒子| 久久久久久久精品妇女99 | 97久久香蕉国产线看观看| 国内精品久久久久久久涩爱| 亚洲国产另类久久久精品| 久久久亚洲裙底偷窥综合| 精品国产福利久久久| 欧美精品九九99久久在观看|