Question

Existe-t-il une meilleure façon de déboguer les impressions dans le noyau Linux ?

En ce moment, je jonche le code avec :

printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ ); 

Ce qui n'est pas très propre.

Il devrait y avoir un moyen pour que toute la rangée soit #ifdef:ed d'une manière gentille.

Était-ce utile?

La solution

Utiliser

/* At the top of the file, before any includes */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <linux/printk.h>

/* in code... */
pr_devel("foobar happened\n");

comme base (la pratique standard).Vous pouvez alors ajouter __FILE__ ou __LINE__ au pr_fmt définition si vous en avez besoin.

Autres conseils

Si cela est pour le débogage rapide, il suffit d'imprimerk () fonctionne bien.

S'il s'agit de déboguer dans une situation de production plus de production, peut-être utiliser PR_DEBUG (). Les messages peuvent donc être activés au moment de l'exécution.

Quoi qu'il en soit, ("% s: xxx", func ) est généralement suffisant.Ces noms de fichiers et numéros de ligne deviendront ennuyeux très bientôt.C'est aussi pourquoi vous n'avez trouvé aucune solution «standard» - car il n'y en a pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top