Comment activer la journalisation des rapports d'incident / vidages de mémoire / trace de pile dans le monde?


9

Crasher des bogues peut être le plus ennuyeux, entraînant une perte de données, des temps d'arrêt et des utilisateurs frustrés. Ce serait bien si les applications plantaient moins.

En raison de la complexité du contexte de la machine, les plantages ne peuvent souvent pas être reproduits dans un délai raisonnable pour un utilisateur ordinaire. Cela ne signifie pas que le bogue est rare - cela pourrait simplement signifier que la chose qui le déclenche se produit rarement pour chaque utilisateur (par exemple, les changements d'heure d'été). Il est peu probable que de tels bogues soient corrigés à moins que de nombreux utilisateurs ne les signalent. Ce serait bien si davantage d'accidents étaient signalés.

Pour déboguer les plantages, les développeurs ont besoin d'autant de contexte sans ambiguïté que possible. Les rapports d'erreur générés sont bons , car ils sont généralement détaillés et précis. Les utilisateurs ne peuvent pas être tenus d'observer avec zèle et de signaler tout le contexte manuellement, ils soumettent donc souvent des informations clairsemées et erronées.

Le public cible de nombreuses applications n'est pas les développeurs ou les administrateurs système, mais plutôt le grand public, à la maison ou au travail. On ne peut pas s'attendre à ce que ces utilisateurs sachent comment collecter manuellement les informations sur les plantages ou installer des -dbgpackages, mais les rapports générés par ces utilisateurs peuvent toujours être utilisables. Certaines applications ont leurs propres outils de rapport d'incident , mais d'après mon expérience, ils fonctionnent rarement , et lorsqu'ils signalent qu'ils n'ont pas signalé l'erreur, il ne semble pas y avoir d'informations sur la façon de le faire manuellement (je l'ai observé pendant versions récentes de Firefox et de Flash). La génération de rapports de crash à l'échelle du système serait une bonne chose.

Existe-t-il une sorte de génération de rapport d'erreur * qui peut être activée globalement ** sans installer une tonne de -dbgpackages, lire la documentation de chaque application ou ralentir une machine normale à une analyse?

* Journaux, vidages mémoire, traces de pile, peu importe

** Pas nécessairement pour init, mais au moins pour un sous-ensemble significatif des applications exécutées sur une installation Linux de bureau typique. D'après mon expérience, les applications GUI plantent plus de 100 fois plus souvent que les applications shell, donc les applications GUI seraient naturellement au centre.


Que feriez-vous avec tous ces fichiers de base (oui, vous pouvez activer les vidages de mémoire globalement, mais les applications pourraient les désactiver individuellement)? Comment éduquez-vous les utilisateurs sur ce qu'il faut en faire, comment les nettoyer?
Mat

1
Envoyez-les aux développeurs. Au moins la plupart d'entre eux doivent être familiarisés avec les pièces jointes des e-mails.
l0b0

1
Et les problèmes de sécurité? les vidages de mémoire peuvent être remplis d'informations personnelles. Je suis désolé, mais je n'ai rien vu de pratique en général dans ce que vous proposez.
Mat

Les rapports de plantage et les traces de pile, en revanche, ne doivent contenir aucune information personnelle. Même celles-ci devraient être suffisantes pour déboguer de nombreuses applications, si elles n'étaient générées que par défaut et faciles à trouver.
l0b0

1
Les traces de pile ne sont pas très utiles sans déboguer les informations (ou au moins les versions binaires exactes qui les accompagnent). Le «rapport de plantage» est un concept au niveau de l'application, pas quelque chose que vous pourriez «activer globalement» (bien que certains frameworks les fournissent, et les grands (KDE par exemple) ont déjà des fonctionnalités automatiques «envoyer à l'équipe de développement»).
Mat

Réponses:



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.