2015-03-08 12 views
9

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?

+0

Sprawdzić poziom dziennika systemu. Być może nie powinien drukować dzienników debugowania. –

+0

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

+0

@Miline Czy chodziło Ci o CONFIG_MESSAGE_LOGLEVEL_DEFAULT? To jest 4, jak podaje plik konfiguracyjny. Ale czy to ma znaczenie? – PaulDaviesC

Odpowiedz

Powiązane problemy