linux下找出核心符號資訊的4種方法

2021-10-13 13:13:25 字數 849 閱讀 6478

在核心除錯中由乙個符號的位址找到對應的符號名稱非常有助於我們對核心的除錯。下面將介紹4種方式來獲得核心符號資訊的4種方法。

1.從 system.map 檔案中得到位址

system.map檔案在編譯核心時生成,包含了核心在編譯時的靜態符號資訊。

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已知核心符號位址, 獲取核心符號名。

linux下找出核心符號資訊的4種方法

在核心除錯中由乙個符號的位址找到對應的符號名稱非常有助於我們對核心的除錯。下面將介紹4種方式來獲得核心符號資訊的4種方法。system.map檔案在編譯核心時生成,包含了核心在編譯時的靜態符號資訊。grep do fork boot system.map 4.15.0 128 generic就可以通...

linux下找出核心符號資訊的4種方法

在核心除錯中由乙個符號的位址找到對應的符號名稱非常有助於我們對核心的除錯。下面將介紹4種方式來獲得核心符號資訊的4種方法。system.map檔案在編譯核心時生成,包含了核心在編譯時的靜態符號資訊。grep do fork boot system.map 4.15.0 128 generic就可以通...

linux下找出核心符號資訊的4種方法

在核心除錯中由乙個符號的位址找到對應的符號名稱非常有助於我們對核心的除錯。下面將介紹4種方式來獲得核心符號資訊的4種方法。system.map檔案在編譯核心時生成,包含了核心在編譯時的靜態符號資訊。grep do fork boot system.map 4.15.0 128 generic就可以通...