addr2line && objdump 命令記錄

addr2line和objdump都是在Linux分析C/C++問題的利器,Android本質上基於Linux開發,因此天然而然的也可以使用這兩個命令來分析一些so的問題。下面對兩個命令作個記錄,方便往後查詢。架構

addr2line

直接經過man命令來查看addr2line的介紹,介紹以下:工具

addr2line translates addresses into file names and line numbers. Given an address in an executable or an offset in a section of a relocatable object, it uses the debugging information to figure out which file name and line number are associated with it..net

直譯過來就是addr2line做用在於將地址轉換成文件名字以及代碼行數,經過該命令,能夠將寄存器的地址轉換成對應的行數,方便發現以及改正Native的一些問題,具體使用能夠查看該文章。 Android使用須要到ndk尋找對應的cpu架構尋找,以下圖:debug

objdump

man出來描述以下:調試

objdump displays information about one or more object files. The options control what particular information to display. This information is mostly useful to programmers who are working on the compilation tools, as opposed to programmers who just want their program to compile and work.orm

objdump主要用於獲取對應so的彙編代碼,經過該方式能獲取到以下效果:blog

熟悉彙編的能夠了解下。ci

ndk提供的調試工具還有ndk-stack,有興趣的能夠研究下。開發


總結

相關文章
相關標籤/搜索