我感興趣的剖析Linux內核的模塊。我試着這樣說:剖析Linux內核模塊
- 建有
CONFIG_PROFILING=y
- 內核啓動完畢後用
profile=2
- 內核重置分析器通過
echo 123 > /proc/profile
- 該模塊已成功通過專用守護
- 運行一個裝通過特定
ioctl
調用使用該模塊的用戶空間應用程序。測試應用程序按預期工作,所以模塊工作正常。 - 閱讀使用
readprofile -p /proc/profile -m System.map
其中System.app與內核而產生的剖析信息。
到目前爲止,一切都很好。幾乎所有的東西都按預期工作。什麼但是沒有不的工作,是我沒有得到我的模塊任何信息,即沒有從模塊的任何功能的提及。
但是,轉念一想,我remebered我使用CONFIG_PROFILING=y
忘記重新編譯模塊。
所以,我的問題是:難道模塊沒有在分析日誌顯示出來,因爲它沒有被編譯的CONFIG_PROFILING=y
或者是有一些其他比較明顯的原因,我不知道的?
如果人們不禁要問,爲什麼我問,而不是試圖它馬上,那是因爲,我不能在家裏做它,我寧願喜歡聽什麼見地會說之前,我再次訪問代碼。
我不知道。我認爲你對這個問題的猜測是正確的,因爲具有分析信息的常見方式是讓編譯器對代碼進行檢測。但是,我想知道,oprofile不適合您的目的嗎? - http://oprofile.sourceforge.net/about/ – Omnifarious 2011-04-23 09:08:43
謝謝! Oprofile似乎有一個相當乏味的安裝,我不確定它是否支持ARM CPU。 – 2011-04-23 09:12:18
自從我在* n * x內核中做了任何事情已經很長時間了,但它必須可以在像GDB這樣的調試器下運行你的模塊。然後你可以使用[這個基本技術](http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024)。 – 2011-04-23 20:14:45