Hvad er DUMP-filformatet?
Filendelsen .dump bruges af symbolfiler oprettet af Google Breakpad, et open source-bibliotek til fejlrapportering, der bruges af forskellige softwareprogrammer, herunder Mozilla Firefox. I stedet for selv at registrere detaljer om nedbruddet, er .dump-filer tabeller med fejlsøgningssymboler i almindelig tekst genereret af værktøjet dump_syms fra en binær fils oprindelige fejlsøgningsdata (Windows PDB-filer, ELF DWARF eller macOS DWARF/STABS). De mapper rå maskinkodeadresser til funktionsnavne, kilde-filstier og linjenumre.
.dump-filer produceres på forhånd og gemmes på en symbolserver eller i en lokal mappe, og genereres ikke, når et program går ned. Når et nedbrud sker, læser det tilhørende værktøj minidump_stackwalk .dump-symbolfilen sammen med en minidump-fejlrapport for at producere en menneskeligt læsbar stack-trace. Den resulterende symboliserede sporing kan sammen med fejlrapporten sendes til softwareudviklere, så de kan identificere og rette de fejl, der fik programmet til at gå ned.
En Breakpad-symbolfil er linjeorienteret ASCII-tekst. Den første linje er altid en MODULE-post - for eksempel MODULE Linux x86_64 <build-id> libfoo.so - der identificerer operativsystemet, CPU-arkitekturen, et unikt build-ID og navnet på biblioteket eller den eksekverbare fil. Efterfølgende poster (FILE, FUNC, PUBLIC, STACK) indeholder resten af symbol-mappingen; senere formatrevisioner tilføjer INLINE- og INLINE_ORIGIN-poster, og læsere er designet til at tolerere ukendte posttyper. Filer varierer fra ti kilobyte til hundredvis af megabyte afhængigt af størrelsen på det bibliotek, der symboliseres.
Da .dump-symbolfiler er almindelig ASCII, kan de inspiceres i enhver teksteditor såsom Notepad++ eller VS Code, eller behandles programmatisk af Sentry CLI og symbolic-biblioteket, som også understøtter det samme Breakpad-symbolformat.
Sikkerhed og tryghed
RISIKO: LOWEn Breakpad-symbolfil er almindelig tekst uden eksekverbart indhold, så den er sikker at åbne. Den eneste reelle bekymring er, at symbolfiler afslører interne funktionsnavne og kildestier for et program (mild informationsafsløring), så leverandører opbevarer dem normalt på private symbolservere. Da «.dump» også bruges til hukommelsesdumps og databaseeksporter, bør du verificere, hvad en given fil faktisk er, før du antager, at den er harmløs - et råt hukommelsesdump kan indeholde følsomme data.
Formatdetaljer
kort fortalt- Hukommelses- / fejldumpfil - Et råt proces- eller kernehukommelsesdump (f.eks. coredump, Windows .dmp) - binært, åbnes i en debugger; urelateret til tekstsymbolfiler.
- Database- / SQL-dump - En teksteksport af en database produceret af værktøjer som mysqldump/pg_dump; indlæses tilbage i databasen, ikke en symboltabel.
- Wireshark / pakkefangst eller generisk datadump - Forskellige værktøjer skriver et «.dump» af rå opsamlede eller eksporterede data; formatet afhænger helt af det producerende værktøj.
Programmer der åbner DUMP-filer
MODULE/FUNC/PUBLIC-posterne - det er almindelig tekst. Nyttigt til at bekræfte, at det er en Breakpad-symbolfil og tjekke debug-id. minidump_stackwalk med et minidump og symbolfilerne for at producere en symboliseret stack-trace; dump_syms genererer disse filer. minidump_stackwalk med et minidump og symbolfilerne for at producere en symboliseret stack-trace; dump_syms genererer disse filer. minidump_stackwalk med et minidump og symbolfilerne for at producere en symboliseret stack-trace; dump_syms genererer disse filer. Tekniske detaljer
dyb specifikation| Formattype | Fejlsøgningssymboltabel i almindelig tekst; linjeorienterede ASCII-poster, der mapper maskinkodeadresser til funktionsnavne og kildeplaceringer |
| MIME-type | text/plain (ses også som application/octet-stream i generiske overførselskontekster) |
| Filhoved / signatur | Ingen binære signatur-bytes; første linje er altid en MODULE-post: MODULE <os> <arch> <build-id> <name> |
| Tekstkodning | ASCII; linjer afgrænset pr. værtsplatform (LF på Unix, CRLF på Windows) |
| Container | Almindelig tekst - ingen binær indpakning, ingen indlejrede sektioner eller bidder |
| Komprimering | Ingen indbygget; filer kan gemmes eksternt gzip-komprimeret på symbolservere |
| Typisk filstørrelse | Ti KB til hundredvis af MB - skalerer med antallet af funktioner og kildelinjer i den symboliserede binære fil |
| Posttyper | MODULE (header), FILE (liste over kildestier), FUNC (funktionsadresseområder), PUBLIC (eksporterede symboler), linjenummerposter, STACK (stak-udrulning), INLINE, INLINE_ORIGIN |
| Build-ID / match-nøgle | MODULE-posten indlejrer et debug-build-ID (hash), der bruges til at parre symbolfilen med den nøjagtige binære fil eller minidump |
| Producentværktøj | dump_syms (Breakpad/Crashpad) - udtrækker symboldata fra Windows PDB, ELF DWARF eller macOS DWARF/STABS fejlsøgningsinfo |
| Forbrugerværktøjer | minidump_stackwalk (Breakpad), Sentry CLI, symbolic-bibliotek (Rust/Python) - alle læser dette format for at symbolisere stack-traces fra nedbrud |
| Platformunderstøttelse | Windows, macOS, Linux, Android - Breakpad og Crashpad genererer og forbruger .dump-symbolfiler på alle fire platforme |
| Formatudvidelse | Additivt nøgleord-post-design; parsere springer ikke-genkendte posttyper over, hvilket tillader INLINE- og INLINE_ORIGIN-poster at blive tilføjet uden at ødelægge ældre værktøjer |
| Læste kilde-fejlsøgningsformater | Windows PDB (.pdb), ELF DWARF (.so / .elf), macOS DWARF og STABS (.dSYM / .dylib) - dump_syms konverterer alle disse til det forenede .dump-symbolformat |
| Udgivet | 2007 (Google Breakpad open-sourced; symbol-file format dates from that era) |
| Seneste version | Breakpad symbol format additively extended (INLINE/INLINE_ORIGIN records added in later revisions); no formal version number |
| Åben standard | Ja · royaltyfri |
| Specifikation | github.com |
DUMP-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om DUMP-filer.
Ofte stillede spørgsmål
Hvad er en .dump-fil?
Hvordan åbner jeg en Breakpad-symbolfil (.dump)?
MODULE/FUNC/PUBLIC-poster. For faktisk at bruge den skal den fødes sammen med et minidump til Breakpads minidump_stackwalk for at producere en stack-trace.Hvad er forskellen på en .dump-symbolfil og et .dmp-fejldump?
Hvorfor viser min fejlsporing hex-adresser i stedet for funktionsnavne?
dump_syms fra det nøjagtige build (MODULE debug-id skal matche) og peg processoren mod dem.