2017-08-15 74 views
1

我有Ubuntu操作系統,我安裝了gcov。 我能夠使用gcov爲我的c程序是在用戶空間,我正在得到所需的結果。 當我想爲我的.ko文件(內核空間)使用gcov時,出現錯誤。 我GOOGLE了,從下面提到的鏈接,我發現我將不得不通過啓用CONFIG_DEBUG_FS,CONFIG_GCOV_KERNEL,CONFIG_GCOV_FORMAT_AUTODETECT和CONFIG_GCOV_PROFILE_ALL來重新編譯我的整個內核。我可以在不重新編譯整個內核的情況下使用gcov作爲內核模塊嗎?

http://techvolve.blogspot.in/2014/03/how-to-gcovlcov-for-linux-kernel-modules.html

我是否有任何其他方式而不用重新編譯內核的gcov我的內核集成可加載模塊? 如果我需要更多信息,請告訴我。我會更新它。 謝謝

回答

0

沒有來自Linux內核核心的支持,您無法從內核模塊收集覆蓋範圍。所以,如果你當前的內核沒有這樣的支持,你必須重新編譯它。


CONFIG_GCOV_PROFILE_ALL不需要從內核模塊覆蓋,但還需要其他配置選項:

  • CONFIG_GCOV_KERNEL - 能夠覆蓋計數器在內核空間,

  • CONFIG_DEBUG_FS - 啓用debugfs文件系統,將這些計數器提取到用戶空間的唯一方式,

  • CONFIG_GCOV_FORMAT_AUTODETECT - 描述收集的覆蓋範圍的格式(您可以選擇配置選項來選擇特定格式而不是自動檢測)。

+0

謝謝@Tsyvarev。 –

相關問題