內部#edit
以下是System.map檔案的一部份內容:[2]
c041bc90 b packet_sklist
c041bc94 b packet_sklist_lock
c041bc94 b packet_socks_nr
c041bc98 A __bss_stop
c041bc98 A _end
c041c000 A pg0
ffffe400 A __kernel_vsyscall
ffffe410 A SYSENTER_RETURN
ffffe420 A __kernel_sigreturn
ffffe440 A __kernel_rt_sigreturn
因為位置在每次構建時都會變動,所以核心每一次新的構建都會產生新的System.map[3]。
符號類型#edit
在位置及符號中間的字符(以空格分開)是符號的類型。UNIX操作系统上的nm工具程式列出了所有目標檔案的符號。而System.map則是直接與其相關,因為這個檔案是在整個核心程式上由nm所產生的 - 就像nm列出任意小的目標程式的符號及它們的類型[4]。
這些類型的一部份:[4]
- A 絕對的
- B 或 b 未初始化的資料段(稱為BSS)
- D 或 d 已初始化的資料段
- G 或 g 小目標的已初始化資料段(全域)
- i 特定的DLL段
- N 除錯符號
- p 堆疊展開段
- R 或 r 唯讀資料段
- S 或 s 小目標的未初始化資料段
- T 或 t 文字(代碼)段
- U 未定義
- V 或 v 弱目標
- W 或 w 尚未被標記的弱目標
- - a.out目標檔案的符號戳
- ? 「符號類型未知」
檔案系統位置#edit
参考文献#edit
- ^ FAQ/System.map - Linux Kernel Newbies. Kernelnewbies.org. 2006-04-14 [2014-04-06]. (原始内容存档于2014-07-12).
- ^ Peter Jay Salzman. The system.map File. Rlworkman.net. 2003-05-28 [2014-04-06]. (原始内容存档于2014-04-06).
- ^ Kernel-HOWTO. faqs.org. [2014-04-06]. (原始内容存档于2014-04-06).
- ^ a b nm(1): symbols from object files - Linux man page. Linux.die.net. [2014-04-06]. (原始内容存档于2014-04-02).
- ^ Peter's Notes: System.map. Linuxmafia.com. 2003-05-29 [2014-04-06]. (原始内容存档于2015-07-31).
參見#edit
This article is mirrored from “System.map” on 中文 Wikipedia, revision 78984208, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.
Synced with Wikipedia revision 78984208 · just now