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

            ++wythern++

            X presents Y for a better Z

            [轉(zhuǎn)]怎么從Backtrace,找到對(duì)應(yīng)的代碼行

            原文在這里

            Backtrace中,一般都只有一些地址。但是利用addr2line這個(gè)工具,就可以找到對(duì)應(yīng)的代碼行。前提條件是可執(zhí)行程序或者動(dòng)態(tài)鏈接庫(kù)編譯的時(shí)候帶-g選項(xiàng)。

            具體來(lái)說(shuō),分兩種情況:

            1. 如果關(guān)注的一行backtrace位于一個(gè)可執(zhí)行文件中,那么直接addr2line -e <executable> <address>
            2. 如果關(guān)注的backtrace位于一個(gè)動(dòng)態(tài)鏈接庫(kù)中,那么麻煩一些,因?yàn)閯?dòng)態(tài)鏈接庫(kù)的基地址不是固定的。這個(gè)時(shí)候,首先要把進(jìn)程的memory map找來(lái)。在Linux下,進(jìn)程的memory map可以在/proc/<pid>/maps文件中得到。然后在這個(gè)文件中找到動(dòng)態(tài)鏈接庫(kù)的基地址,然后將backtrace中的地址 - 動(dòng)態(tài)鏈接庫(kù)的基地址,得到偏移地址offset address, 最后addr2line -e <shared library> <offset address>。

            當(dāng)然,用GDB也可以找出地址對(duì)應(yīng)的代碼行。不過(guò)相比addr2line,GDB需要將BUG現(xiàn)象重現(xiàn)一遍,所以對(duì)于不好重現(xiàn)的BUG,或是隨機(jī)重 現(xiàn)的BUG來(lái)說(shuō),使用addr2line就可以直接從backtrace找到對(duì)應(yīng)的代碼行,不需要重現(xiàn)現(xiàn)象,比GDB使用起來(lái)更簡(jiǎn)單。

            posted on 2013-08-29 14:29 wythern 閱讀(569) 評(píng)論(0)  編輯 收藏 引用


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


            一级做a爰片久久毛片人呢| 色偷偷久久一区二区三区| 精品国产VA久久久久久久冰| 精品无码久久久久国产动漫3d| 久久久久久曰本AV免费免费| 久久久久亚洲AV成人片 | 蜜桃麻豆www久久国产精品| 久久综合精品国产一区二区三区| 狠狠色丁香婷婷久久综合| 少妇人妻88久久中文字幕| 国产综合精品久久亚洲| 久久人妻无码中文字幕| 亚洲综合久久综合激情久久| 久久婷婷色香五月综合激情| 久久er国产精品免费观看2| 久久精品国产亚洲AV不卡| 人妻无码αv中文字幕久久| 久久精品国产亚洲AV不卡| 97精品国产91久久久久久| 一本久久免费视频| 狠狠干狠狠久久| 久久99久国产麻精品66| 久久乐国产精品亚洲综合| 麻豆成人久久精品二区三区免费| 人人狠狠综合久久亚洲88| 久久亚洲精品中文字幕| 思思久久好好热精品国产| 99久久亚洲综合精品成人| 久久精品国产亚洲网站| 久久综合久久综合亚洲| 久久精品国产亚洲5555| 26uuu久久五月天| 麻豆精品久久精品色综合| 久久精品a亚洲国产v高清不卡| 99蜜桃臀久久久欧美精品网站| 久久国产三级无码一区二区| 国内精品人妻无码久久久影院| 亚洲综合伊人久久综合| 无码AV波多野结衣久久| 亚洲AV日韩AV天堂久久| 少妇久久久久久被弄高潮|