我如何知道我所使用的Linux版本中提供的标准内核是否已选择了DEBUG KERNEL ENABLED标志?
我认为必须启用DEBUG选项才能使用诸如kprobe、systemtap等工具?
我如何知道我所使用的Linux版本中提供的标准内核是否已选择了DEBUG KERNEL ENABLED标志?
我认为必须启用DEBUG选项才能使用诸如kprobe、systemtap等工具?
gunzip -c /proc/config.gz | less
要查找内核的配置方式,请检查 /boot/
目录。 根据您所用的发行版,可能会有一个 config-*
文件,其中显示了用于构建内核的内核配置选项。 查找调试设置(例如 CONFIG_DEBUG_KERNEL
)。
gunzip -c /boot/symvers-2.6.18-274.3.1.el5.gz | less
请注意,您可以通过以下方式获取完整路径:
rpm -ql kernel | grep -i symver*
还有一个选择是使用lsmod | more
,希望这能帮到你。
标准内核可能没有启用这些标志进行编译,因为这会增加内核的大小。对于大多数用户来说,这种开销是一个缺点。
您始终可以重新编译自己定制的内核版本,在这种情况下,您可以选择自己的选项集。
您可以使用lsmod
命令列出已编译到内核中的模块。
lsmod
列出当前加载到内核中的模块,其中包括编译为动态加载模块的模块。 - quack quixote