linux中物件檔案的符號表symbols檢視工具nm簡介
1.nm工具作用
nm工具列出.o檔案、.a檔案、.so檔案等的符號資訊,包括諸如符號的值,符號型別及符號名稱等。所謂符號,通常指定義出的函式,全域性變數等等。
2.nm的使用方法
nm [option] filename
例如,nm -C a.out
常用的選項有:
-A 打印出來的每個符號所屬的物件檔案的名稱
-C 使用nm工具打印出來的符號名稱看不懂,使用-C選項後就可以看懂了。
3.使用舉例
源程式main.c為:
使用gcc main.c -o main後生成名稱為main的可執行檔案。#include "stdio.h" int cc = 4; int func_1(){ int a = 4; int b = 3; int c = a + b; } int main(){ int stack_of[100000000]; int b=1; int* a; *a=b; }
<span style="color:#660000;">#nm -C main
000000000050087c A __bss_start
00000000004003dc t call_gmon_start
0000000000500878 D </span><span style="color:#ff0000;">cc</span><span style="color:#660000;">
000000000050087c b completed.1
0000000000500688 d __CTOR_END__
0000000000500680 d __CTOR_LIST__
0000000000500860 D __data_start
0000000000500860 W data_start
0000000000400550 t __do_global_ctors_aux
0000000000400400 t __do_global_dtors_aux
0000000000500868 D __dso_handle
0000000000500698 d __DTOR_END__
0000000000500690 d __DTOR_LIST__
00000000005006a8 D _DYNAMIC
000000000050087c A _edata
0000000000500880 A _end
0000000000400588 T _fini
0000000000500680 A __fini_array_end
0000000000500680 A __fini_array_start
0000000000400440 t frame_dummy
0000000000400678 r __FRAME_END__
0000000000400468 T func_1
0000000000500840 D _GLOBAL_OFFSET_TABLE_
w __gmon_start__
0000000000400370 T _init
0000000000500680 A __init_array_end
0000000000500680 A __init_array_start
0000000000400598 R _IO_stdin_used
00000000005006a0 d __JCR_END__
00000000005006a0 d __JCR_LIST__
w _Jv_RegisterClasses
0000000000400510 T __libc_csu_fini
00000000004004b0 T __libc_csu_init
U [email protected]@GLIBC_2.2.5
0000000000400485 T </span><span style="color:#ff0000;">main</span><span style="color:#660000;">
0000000000500870 d p.0
0000000000500680 A __preinit_array_end
0000000000500680 A __preinit_array_start
00000000004003b0 T _start</span>
在上圖結果輸出中,第一列是符號的值,一般表示記憶體偏移量,但要視具體的符號型別來決定。第二列時符號的型別,具體各種型別的含義可以參見man nm。第三列是符號名稱,例如
相關推薦
linux中物件檔案的符號表symbols檢視工具nm簡介
1.nm工具作用 nm工具列出.o檔案、.a檔案、.so檔案等的符號資訊,包括諸如符號的值,符號型別及符號名稱等。所謂符號,通常指定義出的函式,全域性變數等等。 2.nm的使用方法 nm [option] filename 例如,nm -C a.out 常用的選項有:
linux 中的除錯符號檔案
安裝軟體的時候,經常會發現有一些 -dbg 的包,比如 iceweasel-dbg,軟體包資訊中指出這個包中包含了 iceweasel 的除錯符號資訊。那麼除錯符號資訊是如何生成的呢,生成的除錯符號資訊
恢復二進制文件中的block符號表
crete sym mbo pos symbol lob code 運行腳本 tar 前篇博客中,使用 楊君的小黑屋 提供的工具恢復二進制文件的符號表,只恢復了函數的符號表,本篇講述如何恢復block符號表,楊君的博客中使用IDA分析二進制文件,本篇則使用MacOS系統上體
Linux中歸檔檔案並在系統間傳輸檔案
檔案歸檔tar tar命令能夠列出存檔內容,或者將其檔案提取到當前系統。通過tar,使用者可以將大型檔案集彙集為一個檔案(存檔),該存檔可用gzip,bzip2,xz壓縮方式壓縮 使用歸檔檔案和目錄tar 在建立tar存檔之前,先驗證目錄中沒有其他存檔與要建立的新存檔名稱相同,tar命令
linux中的檔案鎖(勸告性上鎖和強制性上鎖)
上午在看UNP卷二這一節的時候及其想睡覺,就草草了事,夜晚沒有事情幹,就來找找部落格看看這兩個鎖到底是怎麼回事吧! 參考文章:https://www.ibm.com/developerworks/cn/linux/l-cn-filelock/index.html 背景知識:在早期的
Linux中的檔案許可權
1.檔案許可權存在的意義 系統最底層安全設定方法之一 保證檔案可以被可用的使用者做相應操作 2.檔案許可權的檢視 ls -l file ls -ld dir ll file ll -d dir 3.檔案許可權的讀取 - |rw-rw-r--
linux中office檔案預覽方案
在Linux上提供office檔案預覽功能時,若不採用商業庫,較為可行的方案為:利用開源軟體轉換檔案的格式;利用新格式的檔案的瀏覽器開啟檔案。 能夠轉換成的檔案格式包括:PDF、HTML和PS。 支援轉換office檔案的軟體包括:libreoffice、openoffice和WPS企業版。
企業級Linux中NFS檔案系統
NFS檔案系統簡介 網路檔案系統(NFS)是Unix系統和網路附加儲存檔案管理器常用的網路檔案系統,允許多個客戶端通過網路共享檔案訪問。它可用於提供共享二進位制目錄的訪問,也可用於允許使用者在同一工作組中從不同客戶端訪問檔案 NFS協議有很多版本:linux支援版本4,版本3,版
3.1 Linux中的檔案IO (13、14節)
3.1.13.fcntl函式介紹 3.1.13.1、fcntl的原型和作用 (1)fcntl函式是一個多功能檔案管理的工具箱,接收2個引數+1個變參。第一個引數是fd表示要操作哪個檔案,第二個引數是cmd表示要進行哪個命令操作。變參是用來傳遞引數的,要配合cmd來使用。 (2)cmd的樣子類
3.1 Linux中的檔案IO (11、12節)
3.1.11.檔案描述符的複製1 3.1.11.1、dup和dup2函式介紹 3.1.11.2、使用dup進行檔案描述符複製 (1)dup系統呼叫對fd進行復制,會返回一個新的檔案描述符(譬如原來的fd是3,返回的就是4) (2)dup系統呼叫有一個特點,就是自己不能指定複製後得到的fd
Linux中的檔案處理-拷貝,刪除和移動
複製檔案/目錄(命令:cp) 命令 解釋 (file表示檔案,dir表示目錄) cp file1 file2 拷貝 file1 為 file2 cp file1
Linux中的檔案屬性
ls命令的-l選項檢視檔案的屬性 -l:以長格式顯示目錄下的內容列表。輸出的資訊從左到右依次包括檔案型別、許可權模式、硬連線數、所有者、組、檔案大小和檔案的最後修改時間等; 圖中的“1” d:表示目錄 -:表示檔案 l:連線檔案 b:裝置檔案,提供儲存的介面裝置 c:裝置檔案,提供序列
關於Linux中Makefile 檔案的使用
關於Linux中Makefile 檔案的使用 大學有陣子做嵌入式的時候覺得
linux中的檔案搜尋命令
一、locate命令 是在後臺數據庫中按檔名搜尋(也只能按檔名搜尋),搜尋速度較快 這個資料庫的目錄,不同的linux發行版不同,在centos6.10中,這個資料庫的目錄為:/var/lib/mlocate/mlocate.db 這個資料庫預設一天一更新,所以一般新建的檔案,如果不手動
Linux中對檔案判斷引數 -a至-z的意思
[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真
虹軟人臉識別在 linux中so檔案載入不到的問題
其實是可以載入到的,不過是so檔案放的位置不一對,最簡單的方式是放在 /usr/lib64 目錄下,也可自己設定。 so檔案載入不到會報這個錯誤:
使用WinSCP軟體在windows和Linux中進行檔案傳輸
當我們的開發機是Windows,伺服器是Linux時,如何在windows作業系統和linux作業系統之間進行檔案傳輸呢?大部分使用ScureCRT或者putty遠端登入,使用scp、wget等命令拷貝檔案,也有不怕麻煩的在伺服器上安裝FTP伺服器,或者啟用samba甚至NFS。只是用Linux作為網頁伺服器
linux中的檔案和資料夾的新建、查詢、刪除
新建資料夾 使用的mkdir命令可以新建資料夾。 mkdir filename 這樣就建立了一個叫做filename資料夾。 新建一個檔案 新建的檔案可以包括任何副檔名,.txt/.cpp/.csv 使用的是vi命令。 vi a.txt 這
每天進步一點點——Linux中的檔案描述符與開啟檔案之間的關係
在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描述符。程式剛剛啟動的
Linux中的檔案與目錄管理
在Linux中,一切皆檔案 1.0Linux中的檔案型別 1.普通檔案(regular fille)第一個字元為[ - ] 包括: ①純文字文件(ASCII):這是Linux系統中最多的一種檔案型