linux下找出核心符號資訊的4種方法
在核心除錯中由一個符號的地址找到對應的符號名稱非常有助於我們對核心的除錯。下面將介紹4種方式來獲得核心符號資訊的4種方法。
1.從 System.map 檔案中得到地址
System.map檔案在編譯核心時生成,包含了核心在編譯時的靜態符號資訊。
grep do_fork /boot/System.map-4.15.0-128-generic
1
就可以通過do_fork函式名來獲得函式的地址
在這裡插入圖片描述
grep ffffffff810905b0 /boot/System.map-4.15.0-128-generic
1
就可以通過ffffffff810905b0地址來獲得該地址的函式名字
在這裡插入圖片描述
2.從 /proc/kallsyms 檔案中獲得地址
/proc/kallsyms檔案中包含了核心中的符號表。
cat /proc/kallsyms | grep do_fork
1
就可以通過do_fork函式名來獲得函式的地址
cat /proc/kallsyms | grep ffffffff810905b0
1
就可以通過ffffffff810905b0地址來獲得該地址的函式名字
3.使用 nm 命令從 vmlinux 讀取地址
vmlinux是核心編譯後產生的原始的檔案,包含除錯資訊。
nm vmlinux | grep do_fork
1
就可以通過do_fork函式名來獲得函式的地址
nm vmlinux | grep ffffffff810905b0
1
就可以通過ffffffff810905b0地址來獲得該地址的函式名字
4.通過核心提供的函式來獲得
kallsyms_lookup_name()
1
已知核心符號,獲取核心符號地址。
sprint_symbol()
1
已知核心符號地址, 獲取核心符號名。
相關文章
- ruby4種比較符號符號
- C# @符號的多種使用方法C#符號
- Java中轉義HTML符號的四種方法JavaHTML符號
- 各種符號的英文符號
- Linux下找出吃記憶體的方法總結Linux記憶體
- LINUX下找出哪個程式造成的IO等待很高的方法Linux
- linux下查詢無效的符號連線(轉)Linux符號
- rhel 4 update4 的核心版本號
- c++中&符號的幾種用法C++符號
- Linux檢視版本資訊及CPU核心、型號等Linux
- 下載微軟符號表的教程微軟符號
- 英語中各種符號的讀法符號
- emoji等表情符號存mysql的方法符號MySql
- CentOS下檢視系統版本的4種方法CentOS
- 使用命令檢視Linux核心版本的三種方法Linux
- 如何去掉drwxr-xr-x@中的@符號Linux檔案擴充套件資訊符號Linux套件
- Linux/Unix下檢視WWN號碼的方法Linux
- Linux 下系統呼叫的三種方法Linux
- word中間的圓點符號怎麼打 word打出圓點的四種方法符號
- 無符號數相減得到的是無符號還是有符號?符號
- Linux 中改變主機名的 4 種方法Linux
- 在 Windows 中執行 Linux 命令的 4 種方法WindowsLinux
- 4 種繞過 Linux/Unix 命令別名的方法Linux
- 在Mac OS X Lion下修改Hosts 的4種方法Mac
- 各種符號的英文讀法讀音單詞符號
- linux下檢視mysql版本的四種方法LinuxMySql
- Linux核心分析。4Linux
- Linux中的特殊符號含義及作用!Linux符號
- R1-003 Linux上的Shebang符號——#!Linux符號
- 去掉linux文字檔案中的 ^M 符號Linux符號
- 【Linux核心版本號命名的規則 】Linux
- 符號網路的網路表示學習方法符號
- linux下找出佔用空間最大的目錄Linux
- 關於有符號與無符號的位元組符號
- Linux下使用Matlab符號函式出錯的解決辦法(轉)LinuxMatlab符號函式
- linux_sed替換特殊符號Linux符號
- linux常見特殊符號介紹Linux符號
- PHP中基本符號及使用方法PHP符號