A quoi servent les coredumps lorsque l'un de vos programme crashe ?

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
97
Mois de parution
juillet 2018
Domaines


Résumé
On sait tous que chaque avion est systématiquement équipé d’une boîte noire et on est évidemment conscient de l’utilité de cette dernière essentiellement lors d’un crash. Peut-on équiper nos processus d’une boîte noire qui conserve les conditions d’un crash ?Les coredumps, que l’on va étudier tout au long du présent article, jouent un rôle semblable à celui d’une boîte noire pour les binaires exécutables qu’on va lancer. On vous invite à découvrir et à profiter de ces fichiers binaires.


Les coredumps sont des fichiers binaires pas comme les autres. Les fichiers binaires qu’on a l’habitude de manipuler tels que les fichiers exécutables ainsi que les fichiers objets et les librairies partagées sont tous générés manuellement à partir d’un code source existant. De toute évidence, c’est le développeur qui prend la peine dans un premier lieu d’écrire le code source, de l’enregistrer dans un fichier et dans un second lieu de faire appel à un compilateur, à un éditeur de lien et à l’ensemble des outils nécessaires (contenus dans la chaîne de compilation) à la préparation du fichier binaire requis. Cela dit, ce n’est pas le cas pour les fichiers binaires qu’on va traiter tout au long de cet article, car ils se distinguent des autres fichiers binaires par le fait qu’ils ne suivent pas la voie habituelle, puisque ces derniers sont générés automatiquement par le noyau Linux lorsque le programme en cours d’exécution crashe.

Sans doute,...

Cet article est réservé aux abonnés. Il vous reste 97% à 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...

Débugage facile avec Sentry

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Nous le savons tous, aucun code n’est exempt de bugs. Nous avons beau écrire tous les tests unitaires du monde, tous les tests fonctionnels, avoir une couverture du code par nos tests de 200 %, il y a toujours des bugs qui passent à travers les mailles du filet. Sentry est là pour vous aider à les trouver et à les corriger grâce à vos utilisateurs, et ce, sans qu’ils ne s’en rendent compte.

Résolution azimutale d’un RADAR à bruit : analyse et réalisation d’un RADAR à synthèse d’ouverture (SAR) par radio logicielle

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

Nous complétons la mesure de distance des cibles RADAR par la mesure d’azimut rendue possible par la synthèse d’ouverture d’antenne, afin de localiser leur position et ainsi d’identifier précisément leur nature par superposition sur une photographie aérienne. La souplesse de la radio logicielle est illustrée par la montée en fréquence (2,4 GHz), sans modifier aucun élément matériel autre que les antennes.

Débogage JavaScript côté client

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Si JavaScript a longtemps évoqué l’idée de petit script dans un site internet, il est aujourd’hui souvent utilisé comme fondation d’application web complexe (notamment via des frameworks comme ReactJS ou VueJS). Dans ce contexte d’usage avancé, il est nécessaire d’avoir en main les bons outils et techniques de débogage.

Principes de l’orienté objet en C++ : l’encapsulation

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

La programmation orientée objet obéit à des principes. Les 4 principaux principes sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Que de noms barbares, que nous allons démystifier de manière logique ! Des exemples déclinés dans le langage C++ illustreront ces principes. Ce premier article traite de l’encapsulation.

Déboguer un exécutable Java

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

On attribue souvent au succès de Java la relative simplicité de sa syntaxe et surtout son vaste écosystème. C’est oublier un point essentiel dans son adoption : son débogueur et ses fonctionnalités qui simplifient tant le travail d’analyse et de résolution d’une erreur à l’exécution.