Was ist der Fehler von "linux kann Kernel-Paging-Anfrage bei ffffffff00000010 nicht bearbeiten?"

8

Ich habe einen Linux-Kernel-Code geschrieben, der Laufzeitfehler verursacht, und meldet linux unable to handle kernel paging request at ffffffff00000010 .

Es ist nur ein Code, um den open Systemaufruf in der Linux-Kernel-Programmierung zu haken.

Der Code ist unten aufgeführt:

%Vor%     
Victor 14.11.2014, 07:38
quelle

1 Antwort

5

Das bedeutet, dass Sie irgendwo in Ihrem Code einen ungültigen Zeiger haben, auf den Sie zugreifen möchten. Ich kann Ihren Code nicht im laufenden Betrieb debuggen, aber ich kann Ihnen einige Vorschläge machen:

  • versuche das Casting zu vermeiden, bis es unbedingt notwendig ist
  • Wenn Sie auf einen Zeiger werfen, überprüfen Sie, ob Sie das tun möchten
  • in der Fehlermeldung gibt es auch den Stapel, werfen Sie einen Blick darauf, um zu identifizieren, wo der Fehler
  • ist
  • Sie können einfach printk("%p", pointer) in Ihren Code einfügen, um den Inhalt Ihrer Variablen zu überprüfen. Alternativ können Sie systemtap (oder ähnliche Tools) für
  • verwenden
Federico 14.11.2014 08:32
quelle