2009-02-27 6 views
17

È consigliabile ridistribuire i file pdb insieme a un'applicazione commerciale?Quante informazioni contengono i file pdb? (C#/.NET)

Occasionalmente, sto utilizzando lo stack trace per ottenere un registro di segnalazione errori più dettagliato dalle applicazioni distribuite; questa funzionalità può essere raggiunta senza fare affidamento su tali file?

Inoltre, quanti suggerimenti del codice sorgente originale contengono questi file? Sarebbe più semplice effettuare il reverse engineering della mia applicazione usandola?

+0

Sarebbe utile se si specificasse l'ambiente che si sta utilizzando. Un sacco di strumenti di sviluppo di file PDB. –

risposta

11

aggiunge essenzialmente delle informazioni per:

  • Tutti non pubblici tipi, interfacce, strutture, classi
  • variabili locali in funzioni
  • nomi di file
  • sorgente per il codice rilevante e numeri di riga corrispondente nel codice sorgente .

che tutto combinato rende il reverse engineering molto facile per il codice nativo.

Fortunatamente è possibile creare una versione ridotta dei file PDB che contiene solo informazioni pubbliche con il parametro /PDBSTRIPPED.

Oh hai modificato per aggiungere C# /. NET, quindi non sono sicuro se "PDBSTRIPPED" è applicabile. Tuttavia, le applicazioni .NET sono semplicissime da reverse engineer anche senza informazioni sui simboli. Non mi dispiacerebbe includerli in un progetto .NET.

3

Si potrebbe provare a utilizzare dia2dump per esaminare i contenuti.

3

I file gestiti PDB contengono le seguenti informazioni:

  • I nomi di tutte le variabili locali
  • I nomi di tutti i file di codice sorgente e la mappatura da istruzioni IL sulle linee all'interno di tali file.

Tutto il resto è contenuto nel file binario stesso, compresi i nomi di tutti i tipi, i membri e gli argomenti delle funzioni.

Fonte: PDB files: what every developer must know.