Jak włączyć globalne raporty o awariach / zrzutach pamięci / śledzeniu stosu?

9

Awarie mogą być najbardziej irytujące, prowadząc do utraty danych, przestojów i sfrustrowania użytkowników. Byłoby dobrze, gdyby aplikacje ulegały mniej awarii.

Ze względu na złożoność kontekstu maszyny, awarie często nie mogą być odtworzone w rozsądnym czasie dla zwykłego użytkownika. Nie oznacza to, że błąd występuje rzadko - może po prostu oznaczać, że element, który go uruchamia, występuje rzadko dla każdego użytkownika (na przykład zmiany czasu letniego). Takie błędy raczej nie zostaną naprawione, chyba że zgłosi je wielu użytkowników. Byłoby dobrze, gdyby zgłoszono więcej awarii.

Aby debugować awarie, programiści potrzebują możliwie jak najbardziej jednoznacznego kontekstu. Wygenerowane raporty o awariach są dobre , ponieważ zazwyczaj są szczegółowe i dokładne. Nie można oczekiwać, że użytkownicy będą gorliwie obserwować i zgłaszać cały kontekst ręcznie, dlatego często przesyłają rzadkie i błędne informacje.

Grupą docelową wielu aplikacji nie są programiści ani administratorzy, ale raczej ogół społeczeństwa, w domu lub w pracy. Nie można oczekiwać, że tacy użytkownicy będą wiedzieli, jak ręcznie zbierać informacje o -dbgawariach lub instalować pakiety, ale wygenerowane raporty od takich użytkowników nadal mogą być użyteczne. Niektóre aplikacje mają własne narzędzia do zgłaszania awarii , ale z mojego doświadczenia wynika, że te rzadko działają , a kiedy zgłaszają, że nie zgłosili błędu, nie wydaje się, aby były jakieś informacje, jak to zrobić ręcznie (zaobserwowałem to dla najnowsze wersje przeglądarki Firefox i Flash). Generowanie raportów o awariach w całym systemie byłoby dobre.

Czy istnieje jakiś rodzaj generowania raportów o awariach *, który można włączyć globalnie ** bez instalowania mnóstwa -dbgpakietów, czytania dokumentacji każdej aplikacji lub spowalniania normalnej maszyny do przeszukiwania?

* Dzienniki, zrzuty rdzenia, ślady stosu, cokolwiek

** Niekoniecznie dla init, ale przynajmniej dla znacznej części aplikacji działających na typowej instalacji Linuksa na pulpicie. Z mojego doświadczenia wynika, że ​​aplikacje GUI ulegają awarii ponad 100 razy częściej niż aplikacje powłoki, więc aplikacje GUI będą oczywiście w centrum uwagi.

l0b0
źródło
Co byś zrobił z tymi wszystkimi podstawowymi plikami (tak, możesz włączyć zrzuty pamięci globalnie, ale aplikacje mogą je indywidualnie wyłączyć)? W jaki sposób edukujesz użytkowników, co z nimi zrobić, jak je wyczyścić?
Mat
1
Wyślij je do programistów. Przynajmniej większość z nich powinna znać załączniki do wiadomości e-mail.
l0b0
1
Co z problemami bezpieczeństwa? zrzuty podstawowe mogą być pełne danych osobowych. Przykro mi, ale nie widziałem nic praktycznego w tym, co proponujecie.
Mat
Z drugiej strony raporty o awariach i ślady stosu nie powinny zawierać żadnych danych osobowych. Nawet te powinny wystarczyć do debugowania wielu aplikacji, jeśli były one generowane domyślnie i łatwe do znalezienia.
l0b0
1
Ślady na stosie nie są zbyt przydatne bez debugowania informacji (lub przynajmniej dokładnych wersji binarnych, które się z nimi wiążą). „Raport awarii” to koncepcja na poziomie aplikacji, a nie coś, co można „włączyć globalnie” (chociaż niektóre frameworki to zapewniają, a duże (na przykład KDE) mają już automatyczne funkcje „wysyłania do zespołu programistów”).
Mat

Odpowiedzi:

1

Ubuntu ma właśnie do tego Apport .

sendmoreinfo
źródło