[英]Profiling Linux Kernel Modules
我有興趣分析Linux內核的模塊。 我這樣試過:
CONFIG_PROFILING=y
構建內核 profile=2
引導內核 echo 123 > /proc/profile
重置探查器 ioctl
調用使用該模塊的用戶空間應用程序。 測試應用程序按預期工作,因此模塊工作正常。 readprofile -p /proc/profile -m System.map
讀取分析信息,其中System.app與內核一起生成。 到現在為止還挺好。 幾乎一切都按預期工作。 但是什么也沒有工作,是我沒有得到我的模塊任何信息,即沒有從模塊的任何功能的提及。
但是,在第二個想法,我記得我忘了使用CONFIG_PROFILING=y
重新編譯模塊。
所以,我的問題是: 模塊沒有顯示在分析日志中,因為它沒有使用CONFIG_PROFILING=y
進行編譯,還是有其他一些我不知道的更明顯的原因?
如果有人想知道,為什么我要求而不是直接嘗試,那是因為,我不能在家里做,而且我更願意在再次訪問代碼之前聽到知識淵博的話。
由於動態加載模塊,因此無法以這種方式分析模塊,這意味着它們在System.map文件中缺失 。
解決方案是將驅動程序構建到內核中 。 遺憾的是,這並不總是有效,因為系統可能只能在內置於模塊中的驅動程序中運行。
我建議使用oprofile應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.