原文:objdump & nm & addr2line&readelf

GCC把C語言源文件 .c 編譯成匯編語言文件 .s ,匯編器把匯編語言文件翻譯成目標文件 .o ,最后由鏈接器鏈接所有的目標文件和有關的庫生成可執行文件 a.out 。 如打開 g 選項,GCC編譯 .c 文件時,把附加的調試信息插進 .s 文件,這些調試信息經匯編器和鏈接器稍加轉換一直傳到可執行文件中。這些調試信息包括行號 變量的類型和作用域 函數名字 函數參數和函數的作用域等源文件的特性。 ...

2020-06-15 14:35 0 658 推薦指數:

查看詳情

Linux下二進制可執行文件分析 (nm,readelf,objdump 命令使用)

最近在調試一些問題,發現幾個命令很實用,記錄一下。 一 背景 也許大家都遇到過這種場景,就是有二進制代碼,比如深度分析下此文件到底是什么格式的圖片等,這篇文章就記錄我分析下二進制 ...

Fri Feb 11 06:13:00 CST 2022 0 2719
so 動態庫崩潰問題定位(addr2lineobjdump

一、需求分析so 的崩潰並不像 Java 代碼那么好定位,我們通常看到的就只是 so 中的一大段崩潰的堆棧信息。那么我們怎么通過這個堆棧信息來定位我們的問題呢? 二、addr2line1. 介紹Addr2line 工具(它是標准的 GNU Binutils 中的一部分)是一個可以將指令的地址 ...

Mon Jun 15 20:37:00 CST 2020 0 624
nmreadelf命令的區別

其實問題的本質是對elf格式的理解問題,因為是查看so庫的符號表發現的問題。 事情起因是這樣的,由於我的一個程序編譯的時候出現了undefined reference to “XXX”的錯誤,需要鏈接特定的so庫,發現用nm [file]找不到“XXX”函數符號,結果用readelf -s ...

Mon Nov 17 18:42:00 CST 2014 0 5852
mac下的readelfobjdump

ELF文件包括: (1)可重定位的目標文件 (2)可執行的目標文件 (3)可被共享的目標文件 可以用file命令來看目標文件是否是ELF文件 在linux下,用readelf來看ELF頭部或者其它各section的內容,用objdump來對指定的內容(.text ...

Mon Nov 14 03:07:00 CST 2016 0 10835
addr2line用法

轉載地址:https://www.jianshu.com/p/c2e2b8f8ea0d addr2line工具是一個可以將指令的地址和可執行映像轉換為文件名、函數名和源代碼行數的工具。這在內核執行過程中出現崩潰時,可用於快速定位出出錯的位置,進而找出代碼的bug。 用法 ...

Fri Jul 02 18:07:00 CST 2021 0 370
常用的分析ELF文件的命令(readelfobjdump及od)

readelf:-h:文件頭-S:段表-s:符號表-d: 查看依賴庫-p:查看某個段內容,非常重要。如:readelf -p .comment libc.so (通過-p對只讀段的查看就可以替代strings命令) objdump:-d:反匯編(objdump我基本只用這一個)-h:段表 ...

Sat Jun 19 00:47:00 CST 2021 0 176
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM