Débogage kernel et applicatif avec Ftrace pour système généraliste ou embarqué

Magazine
Marque
Open Silicium
Numéro
18
Mois de parution
avril 2016
Spécialité(s)


Résumé
Les outils et les méthodes de débogage pour l'espace applicatif Linux sont plutôt bien connus : de Valgrind à Strace/Ltrace en passant par GDB et toutes ses déclinaisons (DDD, Eclipse, Gdbserver), la documentation et les exemples sont très répandus. En ce qui concerne l'espace noyau, la pratique du débogage est beaucoup plus limitée. Pourtant, certains outils comme Ftrace permettent non seulement d'aider à la mise au point du code kernel, mais également d'analyser finement les comportements des tâches de l'espace utilisateur.

1. Ftrace

Le système Ftrace a été développé en 2008 par Steven Rostedt (Red Hat) et intégré dans le noyau Linux mainline 2.6.26. Il fournit un moyen de suivre depuis l'espace utilisateur le comportement du noyau en enregistrant des points de passage dans le code et en les présentant dans le système de fichiers debugfs.

L'utilisation de Ftrace est plutôt simple, mais nécessite d'écrire des paramètres dans plusieurs fichiers successifs, ce qui s'avère fastidieux à la longue. Un outil nommé trace-cmd propose une commande unique qui prend en charge la gestion des fichiers de debugfs concernés. Les résultats de Ftrace se présentent sous forme de fichiers de texte brut, ce qui est parfaitement suffisant dans certains cas (mesure de durée de latence maximale, liste des fonctions…

La suite est réservée aux abonnés. Il vous reste 98% à découvrir.
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Envie de lire la suite ? Rejoignez Connect
Je m'abonne maintenant


Article rédigé par

Par le(s) même(s) auteur(s)

Beaglebone Black, GPIO et PWM

Magazine
Marque
Open Silicium
Numéro
16
Mois de parution
octobre 2015
Spécialité(s)
Résumé

La carte Beaglebone Black offre de nombreuses entrées-sorties de types assez variés : série asynchrone, SPI, i²c, GPIO, etc. Dans cet article, nous allons nous intéresser aux broches GPIO et PWM. Suivant les distributions et les configurations du noyau, l'accès à ces entrées-sorties n'est pas toujours identique. Heureusement, un overlay du Device Tree nous simplifie la tâche.

Les licences des logiciels libres

Magazine
Marque
Open Silicium
Numéro
15
Mois de parution
juillet 2015
Résumé
En utilisant Linux, FreeBSD ou les outils Gnu, nous évoluons dans un écosystème peuplé d'une myriade de logiciels libres. Leur cohabitation n'est pourtant pas toujours évidente et l'intégration de code propriétaire, par exemple pour des projets industriels, est possible, mais demande certaines précautions d'usage.

Communiquer en i2c avec un capteur de température

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
75
Mois de parution
novembre 2014
Spécialité(s)
Résumé
Le protocole i2c est le plus épuré des bus de communication entre un processeur et ses périphériques. Très simple à employer par le hobbyiste, nous allons le mettre en œuvre pour lire et programmer un capteur de température externe. Ce dernier ne nous servira qu'à titre d'exemple, tout périphérique i2c pouvant convenir.

Les listes de lecture

Python niveau débutant

9 article(s) - ajoutée le 01/07/2020
Vous désirez apprendre le langage Python, mais ne savez pas trop par où commencer ? Cette liste de lecture vous permettra de faire vos premiers pas en découvrant l'écosystème de Python et en écrivant de petits scripts.

Au pays des algorithmes

11 article(s) - ajoutée le 01/07/2020
La base de tout programme effectuant une tâche un tant soit peu complexe est un algorithme, une méthode permettant de manipuler des données pour obtenir un résultat attendu. Dans cette liste, vous pourrez découvrir quelques spécimens d'algorithmes.

Analyse de données en Python

10 article(s) - ajoutée le 01/07/2020
À quoi bon se targuer de posséder des pétaoctets de données si l'on est incapable d'analyser ces dernières ? Cette liste vous aidera à "faire parler" vos données.
Plus de listes de lecture