У меня есть загружаемый модуль ядра, и его 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;
}
Также я включил динамическую отладку в используемой версии ядра - i.e CONFIG_DYNAMIC_DEBUG=y
.
И в Makefile модуля я добавил строку CFLAGS_[id].o := -DDEBUG
, где id.c
- это имя файла.
Теперь я проверил в /sys/kernel/debug/dynamic_debug/control
после выполнения insmod этого модуля, в котором я нашел строки ниже
/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"
Даже после всего этого, к моему разочарованию, я не смог найти два вышеприведенных оператора pr_debug в выводе dmesg. Итак, что мне не хватает или что-то не так?