我有一个可加载的内核模块,它的init如下所示
static int __init id_init(void)
{
struct identity *temp;
/* some code which is not relevant to the question */
temp = identity_find(3);
pr_debug("id 3 = %s\n", temp->name);
temp = identity_find(42);
if (temp == NULL)
pr_debug("id 42 not found\n");
/* some code which is not relevant to the question */
return 0;
}
我也在我正在使用的内核版本上启用了动态调试 – 即CONFIG_DYNAMIC_DEBUG = y.
在模块的Makefile中,我添加了一行CFLAGS_ [id] .o:= -DDEBUG,其中id.c是文件名.
现在我在做了这个模块的insmod之后检查了/ sys / kernel / debug / dynamic_debug / control,其中我找到了下面的行
/home/pauldc/Programming/Kernel/id/id.c:69 [id]id_init =_ "id 42 not found\012"
/home/pauldc/Programming/Kernel/id/id.c:65 [id]id_init =_ "id 3 = %s\012"
即使在完成所有这些之后,令我失望的是,我无法在dmesg的输出中找到上述两个pr_debug语句.那么我错过了什么或做错了什么?