GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie sind Funktionen der dev_*()-Familie beim Debuggen des Linux-Kernels nützlich?

Der pr_*() Funktionen sind dieselben wie beim einfachen printk() , aber mit dem KERN_xxx Loglevel bereits enthalten.

Die dev_*() Funktionen sind die gleichen wie die entsprechenden pr_*() Funktionen, sondern auch identifizierende Informationen über struct device drucken .

Wenn sich Ihre Nachricht auf ein Gerät bezieht (was normalerweise bei Treibern der Fall ist), sollten Sie dev_*() verwenden .Zum Beispiel in einem USB-Treiber:

struct usb_device *usb_dev;
dev_info(&usb_dev->dev, "hello\n");

struct usb_interface *usb_intf;
dev_info(&usb_intf->dev, "hello\n");

oder in einem PCI-Treiber:

struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");

dev_* Funktionen sind ähnlich wie pr_* , sondern gibt auch einige Informationen über das Gerät aus (struct device ), als erstes Argument an sie übergeben. Diese Informationen können helfen, das Systemprotokoll nach Nachrichten zu filtern, die zu einem bestimmten Gerät gehören.

Sie können also dev_* verwenden Funktion anstelle von pr_* wann immer die Nachricht auf ein konkretes Gerät anwendbar ist (und Sie einen Detriptor davon haben).


Linux
  1. Linux:So finden Sie den für ein Gerät verwendeten Gerätetreiber

  2. Linux – Woher kennt der Linux-Kernel Geräte-Major- und Minor-Nummern?

  3. Linux – Wie kann man feststellen, welches Modul den Kernel verschmutzt?

  4. Linux – Welche Entropiequellen werden vom Linux-Kernel verwendet?

  5. So verwenden Sie den id-Befehl unter Linux:5 nützliche Beispiele

Wie der Linux-Kernel mit Interrupts umgeht

Wie man einen Linux-Kernel im 21. Jahrhundert kompiliert

So überprüfen Sie die Kernel-Version in Linux

Wie kann ich einen Speicherblock aus dem Linux-Kernel reservieren?

Wie lädt Linux das 'initrd'-Image?

So listen Sie den Kernel-Gerätebaum auf