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
Domaines


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 invoquées, etc.). Toutefois dans certaines circonstances, une présentation graphique des résultats serait préférable (synchronisation de tâches, mesure de temps de commutation, etc.). Une...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Introduction à l’écriture de tests avec Erlang/OTP

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Les tests ont toujours été un facteur non négligeable de réussite lors de la conception d’un projet de développement. Ces différentes procédures, accompagnant généralement le code source, permettent d’augmenter grandement la qualité d’une application, qu’elle soit libre ou fermée. Même s’il est vrai qu’un programme ne peut-être testé dans son intégralité, les tests mis en place permettront de livrer à l’utilisateur final un système stable ainsi qu’une garantie de fonctionnement. Bien entendu, Erlang/OTP n’est pas en reste, et fournit aux développeurs tout un arsenal d’outils agissant sur l’excellence du produit.

Arithmétique sur divers systèmes embarqués aux ressources contraintes : les nombres à virgule fixe

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Tracer les fractales de Mandelbrot ou de Newton sur de petits microcontrôleurs 8 bits ou 32 bits nous donne l’opportunité d’appréhender la représentation des nombres en virgule fixe pour une implémentation efficace de l’arithmétique – même sur des nombres complexes – sur systèmes embarqués à ressources réduites. Pouvoir tester le même code sur une multitude de plateformes impose de structurer son code pour séparer la partie algorithmique et l’accès aux ressources matérielles : nous allons proposer une architecture de code et de Makefile compatible à la fois avec des tests sur PC et sur diverses architectures de microcontrôleurs, en faisant appel aux stubs.

Identité multiple avec le namespace user

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Après deux articles [1] [2] assez fastidieux, mais néanmoins instructifs sur le fonctionnement interne des namespaces au sein du noyau de Linux, nous revenons en espace utilisateur pour une revue détaillée de chaque namespace. Cet opus se consacre au namespace user.

Créez des présentations animées avec Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Expliquer des faits scientifiques (des formules mathématiques, des phénomènes de physique, etc.) ou du code n’est pas toujours simple. Le recours à des animations peut apporter beaucoup plus de clarté et faciliter la compréhension de votre auditoire. Et ce n’est pas si compliqué à créer...

Traitement de tâches de fond en Ruby

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.