mam ładowalny moduł jądra i jego init jak podano poniżejpr_debug nie daje żadnego wyjścia
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;
}
Również mam włączoną dynamiczną debugowanie włączone w kernelu używam - tj CONFIG_DYNAMIC_DEBUG=y
.
A w pliku Makefile modułu dodałem linię CFLAGS_[id].o := -DDEBUG
, gdzie id.c
jest nazwą pliku.
Teraz sprawdziłem w /sys/kernel/debug/dynamic_debug/control
po zrobieniu insmod tego modułu, w którym Znalazłem poniższe linie
/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"
Nawet po zrobieniu tego wszystkiego, ku mojemu rozczarowaniu nie mogłem znaleźć powyższe dwa stwierdzenia pr_debug w wynik dmesg. Więc czego mi brakuje lub robię źle?
Sprawdzić poziom dziennika systemu. Być może nie powinien drukować dzienników debugowania. –
Czy nie wyglądasz na dmesg lub na ekranie, czy na obu? Spróbuj dodać parametr 'dyndbg' do modułu podczas ładowania. Jeśli masz skompilowane w użyciu ' .dyndbg', gdzie jest nazwą modułu zgodnie z Makefile. –
0andriy
@Miline Czy chodziło Ci o CONFIG_MESSAGE_LOGLEVEL_DEFAULT? To jest 4, jak podaje plik konfiguracyjny. Ale czy to ma znaczenie? – PaulDaviesC