我可以在不重新编译整个内核的情况下将 gcov 用于内核模块吗?
Can i use gcov for kernel modules without recompiling the whole kernel?
我有 ubuntu OS 并且我在其中安装了 gcov。
我可以将 gcov 用于用户 space 中的 c 程序,并且我得到了想要的结果。
当我想对我的 .ko 文件(内核 space)使用 gcov 时,出现错误。
我用谷歌搜索,从下面提到的 link 我发现我必须通过启用 CONFIG_DEBUG_FS、CONFIG_GCOV_KERNEL、CONFIG_GCOV_FORMAT_AUTODETECT 和 CONFIG_GCOV_PROFILE_ALL 来重新编译我的整个内核。 =11=]
http://techvolve.blogspot.in/2014/03/how-to-gcovlcov-for-linux-kernel-modules.html
我是否有任何其他方法可以在不重新编译内核的情况下为我的内核可加载模块集成 gcov?
如果我需要更多信息,请告诉我。我会更新它。
谢谢
没有 Linux 内核核心的支持,您无法从内核模块收集覆盖率。所以,如果你当前的内核没有这样的支持,你必须重新编译它。
内核模块的覆盖不需要 CONFIG_GCOV_PROFILE_ALL,但是需要其他配置选项:
CONFIG_GCOV_KERNEL - 在内核中启用覆盖计数器 space,
CONFIG_DEBUG_FS - 启用 debugfs 文件系统,这是将这些计数器提取到用户 space、
的唯一方法
CONFIG_GCOV_FORMAT_AUTODETECT - 描述收集覆盖率的格式(您可以选择选择特定格式而不是自动检测的配置选项)。
我有 ubuntu OS 并且我在其中安装了 gcov。 我可以将 gcov 用于用户 space 中的 c 程序,并且我得到了想要的结果。 当我想对我的 .ko 文件(内核 space)使用 gcov 时,出现错误。 我用谷歌搜索,从下面提到的 link 我发现我必须通过启用 CONFIG_DEBUG_FS、CONFIG_GCOV_KERNEL、CONFIG_GCOV_FORMAT_AUTODETECT 和 CONFIG_GCOV_PROFILE_ALL 来重新编译我的整个内核。 =11=]
http://techvolve.blogspot.in/2014/03/how-to-gcovlcov-for-linux-kernel-modules.html
我是否有任何其他方法可以在不重新编译内核的情况下为我的内核可加载模块集成 gcov? 如果我需要更多信息,请告诉我。我会更新它。 谢谢
没有 Linux 内核核心的支持,您无法从内核模块收集覆盖率。所以,如果你当前的内核没有这样的支持,你必须重新编译它。
内核模块的覆盖不需要
CONFIG_GCOV_PROFILE_ALL,但是需要其他配置选项:
CONFIG_GCOV_KERNEL - 在内核中启用覆盖计数器 space,
CONFIG_DEBUG_FS - 启用 debugfs 文件系统,这是将这些计数器提取到用户 space、
的唯一方法
CONFIG_GCOV_FORMAT_AUTODETECT - 描述收集覆盖率的格式(您可以选择选择特定格式而不是自动检测的配置选项)。