GNU/Linux >> Tutoriels Linux >  >> Linux

En quoi les fonctions de la famille dev_*() sont-elles utiles lors du débogage du noyau Linux ?

Le pr_*() les fonctions sont les mêmes que le simple printk() , mais avec le KERN_xxx niveau de journalisation déjà inclus.

Le dev_*() les fonctions sont les mêmes que le pr_*() correspondant fonctions, mais aussi imprimer des informations d'identification sur le struct device .

Si votre message est lié à un périphérique (ce qui est normalement le cas dans les pilotes), vous devez utiliser dev_*() .Par exemple, dans un pilote USB :

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

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

ou dans un pilote PCI :

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

dev_* les fonctions sont similaires à pr_* , mais également imprimer des informations sur l'appareil (struct device ), leur est passé comme premier argument. Ces informations peuvent aider à filtrer le journal système pour les messages appartenant à un appareil concret.

Ainsi, vous pouvez utiliser dev_* fonction au lieu de pr_* chaque fois que le message s'applique à un appareil concret (et que vous en avez un destripteur).


Linux
  1. Linux - Comment le noyau Linux connaît-il les numéros majeurs et mineurs des périphériques ?

  2. Linux - Comment déterminer quel module corrompt le noyau ?

  3. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

  4. Comment utiliser la commande id sous Linux :5 exemples utiles

  5. Comment nettoyer les caches utilisés par le noyau Linux

Comment le noyau Linux gère les interruptions

Comment compiler un noyau Linux au 21e siècle

Comment vérifier la version du noyau sous Linux

Quelles sont les fonctions du BIOS lorsque le système d'exploitation est en cours d'exécution ?

Comment puis-je réserver un bloc de mémoire à partir du noyau Linux ?

Comment Linux charge-t-il l'image 'initrd' ?