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

            [轉]怎么從Backtrace,找到對應的代碼行

            原文在這里

            Backtrace中,一般都只有一些地址。但是利用addr2line這個工具,就可以找到對應的代碼行。前提條件是可執行程序或者動態鏈接庫編譯的時候帶-g選項。

            具體來說,分兩種情況:

            1. 如果關注的一行backtrace位于一個可執行文件中,那么直接addr2line -e <executable> <address>
            2. 如果關注的backtrace位于一個動態鏈接庫中,那么麻煩一些,因為動態鏈接庫的基地址不是固定的。這個時候,首先要把進程的memory map找來。在Linux下,進程的memory map可以在/proc/<pid>/maps文件中得到。然后在這個文件中找到動態鏈接庫的基地址,然后將backtrace中的地址 - 動態鏈接庫的基地址,得到偏移地址offset address, 最后addr2line -e <shared library> <offset address>。

            當然,用GDB也可以找出地址對應的代碼行。不過相比addr2line,GDB需要將BUG現象重現一遍,所以對于不好重現的BUG,或是隨機重 現的BUG來說,使用addr2line就可以直接從backtrace找到對應的代碼行,不需要重現現象,比GDB使用起來更簡單。

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

            精品国产乱码久久久久久人妻| 成人久久综合网| 久久久久国产精品| 97久久超碰国产精品旧版| 久久只有这里有精品4| 久久精品极品盛宴观看| 色综合久久久久综合99| 亚洲欧美一级久久精品| 久久天天躁夜夜躁狠狠躁2022 | 中文字幕无码久久人妻| 中文字幕无码av激情不卡久久| 狠狠色丁香婷婷久久综合| 久久久久久综合网天天| 久久久久亚洲精品无码蜜桃| 久久发布国产伦子伦精品| 丁香狠狠色婷婷久久综合| 久久久国产精品网站| 久久久久一本毛久久久| 亚洲精品无码久久久影院相关影片| 伊人久久大香线焦AV综合影院| 久久久亚洲欧洲日产国码二区| 久久国产一区二区| 亚洲国产小视频精品久久久三级| 欧美一区二区久久精品| 久久亚洲私人国产精品| yellow中文字幕久久网| 久久久久99这里有精品10| 人妻无码久久一区二区三区免费| a级成人毛片久久| 久久无码人妻精品一区二区三区| 亚洲级αV无码毛片久久精品| 久久97精品久久久久久久不卡| 久久久久亚洲av毛片大| 国产精品99久久99久久久| 伊人热人久久中文字幕| 一本一本久久aa综合精品| 精品一区二区久久久久久久网站| 99久久综合国产精品免费| 精品久久人人爽天天玩人人妻| 亚洲精品无码久久久久去q| 久久精品无码一区二区三区免费|