簡體   English   中英

分析Linux內核模塊

[英]Profiling Linux Kernel Modules

我有興趣分析Linux內核的模塊。 我這樣試過:

  1. 使用CONFIG_PROFILING=y構建內核
  2. 使用profile=2引導內核
  3. 通過echo 123 > /proc/profile重置探查器
  4. 該模塊由專用守護程序成功加載
  5. 運行通過特定ioctl調用使用該模塊的用戶空間應用程序。 測試應用程序按預期工作,因此模塊工作正常。
  6. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM