Che cos'è il formato di file DUMP?
L'estensione .dump è utilizzata dai file di simboli creati da Google Breakpad, una libreria open-source per la segnalazione dei crash utilizzata da vari software, tra cui Mozilla Firefox. Invece di registrare i dettagli del crash stessi, i file .dump sono tabelle di simboli di debug in testo semplice generate dallo strumento dump_syms a partire dai dati di debug nativi di un binario (Windows file PDB, ELF DWARF o macOS DWARF/STABS). Essi mappano gli indirizzi grezzi del codice macchina a nomi di funzioni, percorsi di file sorgente e numeri di riga.
I file .dump vengono prodotti in anticipo e memorizzati su un server di simboli o in una directory locale, non vengono generati quando un programma va in crash. Quando si verifica un crash, lo strumento complementare minidump_stackwalk legge il file dei simboli .dump insieme a un crash report minidump per produrre uno stack trace leggibile dall'uomo. La traccia simbolizzata risultante, insieme al crash report, può essere inviata agli sviluppatori software affinché possano determinare e risolvere gli errori che causano il crash del programma.
Un file di simboli Breakpad è un testo ASCII orientato alle righe. La prima riga è sempre un record MODULE - ad esempio MODULE Linux x86_64 <build-id> libfoo.so - che identifica il sistema operativo, l'architettura della CPU, un ID di build univoco e il nome della libreria o dell'eseguibile. I record successivi (FILE, FUNC, PUBLIC, STACK) contengono il resto della mappatura dei simboli; le revisioni successive del formato aggiungono i record INLINE e INLINE_ORIGIN, e i lettori sono progettati per tollerare tipi di record sconosciuti. I file variano da decine di kilobyte a centinaia di megabyte a seconda delle dimensioni della libreria da simbolizzare.
Poiché i file di simboli .dump sono in semplice ASCII, possono essere ispezionati in qualsiasi editor di testo come Notepad++ o VS Code, o elaborati programmaticamente dalla Sentry CLI e dalla libreria symbolic, che supportano anch'esse lo stesso formato di simboli Breakpad.
Sicurezza e incolumità
RISCHIO: LOWUn file di simboli Breakpad è testo semplice senza contenuto eseguibile, quindi è sicuro da aprire. L'unica vera preoccupazione è che i file di simboli espongono nomi di funzioni interne e percorsi sorgente di un programma (lieve divulgazione di informazioni), quindi i fornitori solitamente li conservano su server di simboli privati. Poiché «.dump» è usato anche per dump di memoria ed esportazioni di database, verifica cos'è effettivamente un dato file prima di presumere che sia innocuo - un dump di memoria grezzo può contenere dati sensibili.
Dettagli del formato
in sintesi- File dump di memoria / crash - Un dump grezzo della memoria di un processo o del kernel (ad es. core dump, Windows .dmp) - binario, aperto in un debugger; non correlato ai file di simboli testuali.
- Dump di database / SQL - Un'esportazione testuale di un database prodotta da strumenti come mysqldump/pg_dump; viene riprodotta nel database, non è una tabella di simboli.
- Wireshark / cattura pacchetti o dump dati generico - Vari strumenti scrivono un «.dump» di dati grezzi catturati o esportati; il formato dipende interamente dallo strumento di produzione.
Programmi che aprono file DUMP
Dettagli tecnici
specifiche approfondite| Tipo di formato | Tabella dei simboli di debug in testo semplice; record ASCII orientati alle righe che mappano gli indirizzi del codice macchina ai nomi delle funzioni e alle posizioni dei sorgenti |
| Tipo MIME | text/plain (visto anche come application/octet-stream in contesti di trasferimento generici) |
| Intestazione file / magic | Nessun byte magico binario; la prima riga è sempre un record MODULE: MODULE <os> <arch> <build-id> <name> |
| Codifica del testo | ASCII; righe delimitate in base alla piattaforma host (LF su Unix, CRLF su Windows) |
| Contenitore | Testo semplice - nessun wrapper binario, nessuna sezione o chunk incorporato |
| Compressione | Nessuna integrata; i file possono essere memorizzati compressi con gzip esternamente sui server dei simboli |
| Dimensione tipica del file | Da decine di KB a centinaia di MB - scala con il numero di funzioni e righe sorgente nel binario simbolizzato |
| Tipi di record | MODULE (intestazione), FILE (elenco percorsi sorgente), FUNC (intervalli indirizzi funzioni), PUBLIC (simboli esportati), record numeri di riga, STACK (unwinding del frame), INLINE, INLINE_ORIGIN |
| ID build / chiave di corrispondenza | Il record MODULE incorpora un ID build di debug (hash) utilizzato per accoppiare il file dei simboli con l'esatto binario o minidump |
| Strumento di produzione | dump_syms (Breakpad/Crashpad) - estrae i dati dei simboli dalle informazioni di debug Windows PDB, ELF DWARF o macOS DWARF/STABS |
| Strumenti di consumo | minidump_stackwalk (Breakpad), Sentry CLI, libreria symbolic (Rust/Python) - leggono tutti questo formato per simbolizzare gli stack trace dei crash |
| Supporto piattaforma | Windows, macOS, Linux, Android - Breakpad e Crashpad generano e consumano file di simboli .dump su tutte e quattro le piattaforme |
| Estensibilità del formato | Design a record con parole chiave additive; i parser saltano i tipi di record non riconosciuti, consentendo l'aggiunta di record INLINE e INLINE_ORIGIN senza rompere i vecchi strumenti |
| Formati di debug sorgente letti | Windows PDB (.pdb), ELF DWARF (.so / .elf), macOS DWARF e STABS (.dSYM / .dylib) - dump_syms converte tutti questi nel formato di simboli unificato .dump |
| Rilasciato | 2007 (Google Breakpad open-sourced; symbol-file format dates from that era) |
| Ultima versione | Breakpad symbol format additively extended (INLINE/INLINE_ORIGIN records added in later revisions); no formal version number |
| Standard aperto | Sì · royalty-free |
| Specifica | github.com |
Conversioni DUMP
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file DUMP.