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.

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:
- Co robiłeś, gdy to się stało? jest opcjonalne. Kilka słów, takich jak „Otworzyłem Dodaj URL”, bardzo pomaga.
- Raport pokazuje wszystko, co zostanie wysłane. Przeczytaj go najpierw, jeśli chcesz.
- 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.
- 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 jakomdm.1.logi 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
minidumpericrash-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-minidumpMozilli. Wykorzystuje symbole Breakpad z wydania, jeśli zostaną znalezione, lub natywne informacje debugowania obok kompilacji ze źródła. Sygnatura raportu (na przykładfreeze 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 wMisterDownloadManager-<version>-symbols-<platform>.zip(tools/installer/symbols.py, używającdump_symsMozilli), publikowane obok innych plików wydania. Okno raportu pobiera plik zip dla swojej wersji, gdy stos pokazuje gołe adresy. .dmpz problemu:
cargo run -p mdm-crash --bin mdm-symbolicate -- crash.dmp MisterDownloadManager-<version>-symbols-windows-x64.zip
- Testowanie.
cargo test -p mdm-crashuruchamia prawdziwe zawieszenie, panikę i awarię (examples/crashy.rs) oraz sprawdza sygnaturę każdego raportu. Aby wypróbować to w aplikacji, uruchom MDM zMDM_CRASH_TEST=1, a następnie uruchommisterdownloadmanager /show crash-test:freeze(lubpanic,crash,abort).
Darmowy, open source, bez reklam, bez wersji próbnej.
Pobierz Mister Download Manager