Mister Download Manager
  1. Strona główna
  2. Pomoc
  3. Raporty o awariach

Raporty o awariach

Jeśli Mister Download Manager zostanie nieoczekiwanie zamknięty lub przestanie odpowiadać, otworzy się okno raportu o błędach. Pokazuje ono, co się stało, pozwala przeczytać cały raport i może wysłać go programistom na GitHub. Każdy raport pomaga rozwiązać problem dla wszystkich.

Okno raportu o awarii po tym, jak MDM przestał odpowiadać

Co widzisz

  • Mister Download Manager został nieoczekiwanie zamknięty: MDM uległ awarii lub napotkał wewnętrzny błąd i został zamknięty.
  • Mister Download Manager przestał odpowiadać: jego okno nie odpowiadało przez 8 sekund. MDM nadal działa, ale jest zawieszony. Zakończ i uruchom ponownie MDM zamyka zawieszoną kopię i uruchamia nową. Jeśli MDM ponownie odpowie samodzielnie, okno to zasygnalizuje.

W oknie:

  1. Co robiłeś, gdy to się stało? jest opcjonalne. Kilka słów, takich jak „Otworzyłem Dodaj URL”, bardzo pomaga.
  2. Raport pokazuje wszystko, co zostanie wysłane. Przeczytaj go najpierw, jeśli chcesz.
  3. Wyślij na GitHub otwiera w przeglądarce formularz Raport o błędach na GitHub, już wypełniony, wraz z folderem zawierającym raport. Przeciągnij plik raportu do formularza, sprawdź go i wyślij. Potrzebujesz konta GitHub. Nic nie jest wysyłane automatycznie.
  4. Jeśli ktoś już zgłosił ten sam problem, okno to zasygnalizuje (Już zgłoszono jako problem #…). Otwórz zgłoszony problem otwiera go i umieszcza Twój raport w schowku, dzięki czemu możesz dodać go jako komentarz.

Pozostałe przyciski kopiują raport, otwierają jego folder lub ponownie uruchamiają MDM.

Co zawiera raport

  • Co się stało: błąd i miejsce w kodzie MDM, gdzie się to stało.
  • Stos: miejsce w kodzie MDM, gdzie nastąpiła awaria lub zawieszenie, oraz to, co robiła każda inna jego część.
  • Ostatni dziennik MDM: na przykład „polecenie AddUrl” lub „okno otwarte: add-url”.
  • System: wersja MDM i sposób jego instalacji, system operacyjny i jego wersja, procesor, język i motyw oraz liczba pobrań i kolejek. Są to tylko liczby.

Nie zawiera żadnych:

  • adresów pobierania ani nazw plików;
  • nazwy użytkownika, która w ścieżkach folderów jest wyświetlana jako ~.

Jeśli komunikat o błędzie cytuje coś, co wpisałeś, ten tekst znajduje się w raporcie, więc przeczytaj go przed wysłaniem.

Plik danych awarii (.dmp) to migawka tego, co MDM uruchamiał w danym momencie. Najbardziej pomaga programistom, ale może zawierać fragmenty tego, co MDM miał w pamięci, takie jak adresy pobierania. Jest on dołączany tylko wtedy, gdy zaznaczysz Dołącz również dane awarii.

Gdzie przechowywane są raporty

W folderze danych MDM:

  • crashes\: każdy raport (.txt) i jego dane awarii (.dmp);
  • logs\: dziennik MDM (mdm.log, ze starszymi jako mdm.1.log i tak dalej, po 2 MB każdy).

Folder danych MDM to %APPDATA%\misterdownloadmanager w systemie Windows, ~/Library/Application Support/misterdownloadmanager w systemie macOS i ~/.local/share/misterdownloadmanager w systemie Linux. W trybie przenośnym jest to folder data obok programu.

Dziennik rejestruje działania MDM, więc raport może pokazać, co doprowadziło do problemu. Aby rejestrować więcej szczegółów, uruchom MDM ze zmienną środowiskową MDM_LOG=debug.

Dla programistów

Jak to działa: druga kopia MDM, monitor, uruchamia się obok niego z --crash-monitor. Kod awarii znajduje się w crates/crash i crates/app/src/crash.rs.

  • Wykrywanie problemów. Gdy MDM ulegnie awarii (wyjątek Windows, sygnał w systemie Linux, wyjątek Mach w systemie macOS), panice lub zawiesi się, prosi monitor o zrzut. Zawieszenie to klatka okna działająca dłużej niż 8 s, widziana przez wątek nadzorujący, który ignoruje czas spędzony w stanie uśpienia. Monitor następnie zapisuje minizrzut każdego wątku z zewnątrz, za pośrednictwem minidumper i crash-handler. Proces, który uległ awarii, nigdy nie zapisuje własnego zrzutu, co jest również sposobem działania Firefox, Crashpad i Sentry.
  • Odczytywanie zrzutu. Monitor odczytuje zrzut za pomocą rust-minidump Mozilli. Wykorzystuje symbole Breakpad z wydania, jeśli zostaną znalezione, lub natywne informacje debugowania obok kompilacji ze źródła. Sygnatura raportu (na przykład freeze in misterdownloadmanager::winui::combo_edit) pozostaje taka sama dla raportów dotyczących jednego problemu, a okno wyszukuje istniejące problemy na jej podstawie.
  • Symbole. Kompilacje wydań zachowują tabele linii (debug = "line-tables-only"), ale żadne pobieranie nie zawiera informacji debugowania. CI przekształca je w MisterDownloadManager-<version>-symbols-<platform>.zip (tools/installer/symbols.py, używając dump_syms Mozilli), publikowane obok innych plików wydania. Okno raportu pobiera plik zip dla swojej wersji, gdy stos pokazuje gołe adresy.
  • .dmp z problemu:

cargo run -p mdm-crash --bin mdm-symbolicate -- crash.dmp MisterDownloadManager-<version>-symbols-windows-x64.zip

  • Testowanie. cargo test -p mdm-crash uruchamia prawdziwe zawieszenie, panikę i awarię (examples/crashy.rs) oraz sprawdza sygnaturę każdego raportu. Aby wypróbować to w aplikacji, uruchom MDM z MDM_CRASH_TEST=1, a następnie uruchom misterdownloadmanager /show crash-test:freeze (lub panic, crash, abort).

Darmowy, open source, bez reklam, bez wersji próbnej.

Pobierz Mister Download Manager