Co to jest format pliku DUMP?
Rozszerzenie .dump jest używane przez pliki symboli utworzone przez Google Breakpad, otwartoźródłową bibliotekę do raportowania awarii używaną przez różne oprogramowanie, w tym Mozilla Firefox. Zamiast rejestrować same szczegóły awarii, pliki .dump są tabelami symboli debugowania w formacie tekstowym, generowanymi przez narzędzie dump_syms z natywnych danych debugowania pliku binarnego (pliki Windows PDB, ELF DWARF lub macOS DWARF/STABS). Mapują one surowe adresy kodu maszynowego na nazwy funkcji, ścieżki plików źródłowych i numery linii.
Pliki .dump są tworzone z wyprzedzeniem i przechowywane na serwerze symboli lub w katalogu lokalnym, a nie generowane w momencie awarii programu. Gdy dojdzie do awarii, towarzyszące narzędzie minidump_stackwalk odczytuje plik symboli .dump wraz z raportem zrzutu minidump, aby wygenerować czytelny dla człowieka ślad stosu. Wynikowy ślad z naniesionymi symbolami, wraz z raportem o awarii, może zostać wysłany do programistów, aby mogli oni określić i naprawić błędy powodujące zawieszanie się programu.
Plik symboli Breakpad to tekst ASCII zorientowany liniowo. Pierwsza linia to zawsze rekord MODULE - na przykład MODULE Linux x86_64 <build-id> libfoo.so - identyfikujący system operacyjny, architekturę procesora, unikalny identyfikator kompilacji oraz nazwę biblioteki lub pliku wykonywalnego. Kolejne rekordy (FILE, FUNC, PUBLIC, STACK) zawierają resztę mapowania symboli; późniejsze rewizje formatu dodają rekordy INLINE i INLINE_ORIGIN, a czytniki są zaprojektowane tak, aby tolerować nieznane typy rekordów. Rozmiary plików wahają się od kilkunastu kilobajtów do setek megabajtów, w zależności od rozmiaru symbolizowanej biblioteki.
Ponieważ pliki symboli .dump są zwykłym tekstem ASCII, można je przeglądać w dowolnym edytorze tekstu, takim jak Notepad++ lub VS Code, lub przetwarzać programowo za pomocą Sentry CLI i biblioteki symbolic, które również obsługują ten sam format symboli Breakpad.
Bezpieczeństwo
RYZYKO: LOWPlik symboli Breakpad to zwykły tekst bez zawartości wykonywalnej, więc jego otwieranie jest bezpieczne. Jedyną realną obawą jest to, że pliki symboli ujawniają wewnętrzne nazwy funkcji i ścieżki źródłowe programu (łagodne ujawnienie informacji), dlatego dostawcy zazwyczaj przechowują je na prywatnych serwerach symboli. Ponieważ rozszerzenie „.dump” jest również używane do zrzutów pamięci i eksportów baz danych, przed założeniem, że plik jest nieszkodliwy, należy zweryfikować, czym on faktycznie jest - surowy zrzut pamięci może zawierać wrażliwe dane.
Szczegóły formatu
w pigułce- Plik zrzutu pamięci / awarii - Surowy zrzut pamięci procesu lub jądra (np. core dump, Windows .dmp) - binarny, otwierany w debugerze; niepowiązany z tekstowymi plikami symboli.
- Zrzut bazy danych / SQL - Tekstowy eksport bazy danych utworzony przez narzędzia takie jak mysqldump/pg_dump; odtwarzany z powrotem w bazie danych, nie jest tabelą symboli.
- Wireshark / przechwytywanie pakietów lub ogólny zrzut danych - Różne narzędzia zapisują rozszerzenie „.dump” dla surowych przechwyconych lub wyeksportowanych danych; format zależy całkowicie od narzędzia tworzącego.
Programy otwierające pliki DUMP
Szczegóły techniczne
specyfikacja| Typ formatu | Tekstowa tabela symboli debugowania; zorientowane liniowo rekordy ASCII mapujące adresy kodu maszynowego na nazwy funkcji i lokalizacje źródłowe |
| Typ MIME | text/plain (widziany również jako application/octet-stream w ogólnych kontekstach przesyłania) |
| Nagłówek pliku / sygnatura | Brak binarnych bajtów magicznych; pierwsza linia to zawsze rekord MODULE: MODULE <os> <arch> <build-id> <name> |
| Kodowanie tekstu | ASCII; linie rozdzielane zgodnie z platformą hosta (LF w Unix, CRLF w Windows) |
| Kontener | Zwykły tekst - brak binarnego opakowania, osadzonych sekcji czy fragmentów |
| Kompresja | Brak wbudowanej; pliki mogą być przechowywane zewnętrznie skompresowane algorytmem gzip na serwerach symboli |
| Typowy rozmiar pliku | Od kilkunastu KB do setek MB - skaluje się wraz z liczbą funkcji i linii źródłowych w symbolizowanym pliku binarnym |
| Typy rekordów | MODULE (nagłówek), FILE (lista ścieżek źródłowych), FUNC (zakresy adresów funkcji), PUBLIC (eksportowane symbole), rekordy numerów linii, STACK (odwijanie ramek stosu), INLINE, INLINE_ORIGIN |
| Build ID / klucz dopasowania | Rekord MODULE zawiera identyfikator kompilacji debugowania (hash) używany do sparowania pliku symboli z konkretnym plikiem binarnym lub minidumpem |
| Narzędzie tworzące | dump_syms (Breakpad/Crashpad) - wyodrębnia dane symboli z Windows PDB, ELF DWARF lub macOS DWARF/STABS |
| Narzędzia konsumujące | minidump_stackwalk (Breakpad), Sentry CLI, biblioteka symbolic (Rust/Python) - wszystkie odczytują ten format do symbolizacji śladów stosu awarii |
| Obsługa platform | Windows, macOS, Linux, Android - Breakpad i Crashpad generują i wykorzystują pliki symboli .dump na wszystkich czterech platformach |
| Rozszerzalność formatu | Konstrukcja oparta na słowach kluczowych; parsery pomijają nierozpoznane typy rekordów, co pozwala na dodawanie rekordów INLINE i INLINE_ORIGIN bez psućia starszych narzędzi |
| Odczytywane źródłowe formaty debugowania | Windows PDB (.pdb), ELF DWARF (.so / .elf), macOS DWARF i STABS (.dSYM / .dylib) - dump_syms konwertuje je wszystkie na ujednolicony format symboli .dump |
| Wydano | 2007 (Google Breakpad open-sourced; symbol-file format dates from that era) |
| Najnowsza wersja | Breakpad symbol format additively extended (INLINE/INLINE_ORIGIN records added in later revisions); no formal version number |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | github.com |
Konwersje DUMP
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki DUMP.