2009-03-03 13 views

risposta

6

Se lo si desidera, è anche possibile disattivare la generazione di file PDB nelle opzioni di compilazione.

-4

No, non è necessario distribuire il file .pdb.

Per quotare da MSDN, "Un file PDB viene creato quando si crea/debug (Visual Basic/C#).", Quindi non dovrebbe essere necessario creare il database di debug durante la compilazione per il rilascio.

0

No, non vengono spediti i file .pdb. Vengono generati perché a volte è utile essere in grado di eseguire il debug di una build di rilascio.

36

No, non è necessario distribuirli.

Per quanto riguarda il motivo per cui sono stati anche costruiti in versione. Un file PDB ha davvero un paio di usi, ma quelli primari (almeno per me) sono

  1. debug
  2. Profiling

Entrambe le operazioni sono validamente fatto su binari di rilascio ed è per questo le versioni di rilascio includono un PDB. In effetti, quando si esegue il debugging dei dump di Watson è il 100% delle volte contro una build di rilascio. Senza un progetto preliminare di bilancio avrei dovuto ricorrere a guardare attraverso dissasembly :(

+0

Ora sono curioso. Come vengono utilizzati i PDB nella profilazione? –

+2

@Dan, Parte della profilazione è la possibilità di mappare i luoghi casuali nell'assieme al codice utente. Altrimenti non sapresti quale codice è stato esercitato proprio su quale assemblaggio. I PDB sono ottimi per mappare assembly -> source (questo è uno dei motivi per cui un debugger ha bisogno di loro) – JaredPar

+0

OK - Credo che considererei questa parte del debug. ;-) Pensavo intendessi una sorta di analisi delle prestazioni del codice di rilascio. –

2

Nope. Non è necessario per distribuirli. Vi aiuterà con il debug (o dovrei dire che renderà il debug possibile per le persone sane di mente

È anche possibile disattivare o regolare il "livello" dei simboli generati in Visual Studio: basta andare su Proprietà progetto/scheda "Crea"/"Avanzate" e apportare modifiche alle "Informazioni di debug" campo

0

Alcuni strumenti come InterceptStudio di AVICode utilizzano i file pdb per visualizzare l'origine di una particolare eccezione/traccia dello stack/locale all'interno dello strumento, piuttosto che dover aprire la sorgente e vai a una linea specifica.

4

un file PDB contiene informazioni sui nomi delle funzioni. Ne hai bisogno per essere in grado di ottenere una traccia dello stack. Può anche contenere informazioni sulla mappatura alle fonti. A volte potresti voler spedire la tua versione di rilascio, e comunque devi analizzare un crash che si verifica sul lato client. Per questo, è necessario il PDB. Il PDB durante la compilazione per il rilascio dovrebbe in teoria avere meno informazioni rispetto alla compilazione per il debug.

3

I file PDB contengono simboli di debug che consentono di eseguire il debug del binario anche in modalità di rilascio. Non è necessario (e probabilmente non dovrebbero distribuirli), in quanto potrebbero essere utilizzati per decodificare l'applicazione. Mantenerli archiviati da qualche parte, però, perché sono molto utili quando si desidera eseguire il debug di un dump di arresto anomalo.

0

Non hai bisogno che scappino.

I file pdb possono essere utilizzati per eseguire il debug anche se la build si trova nella configurazione di rilascio.

9

Non è necessario distribuire e distribuire i file PDB insieme ai file binari.

Tuttavia, suggerisco di mantenerli (e infine indicizzarli) per poter analizzare qualsiasi file di dump che i clienti, il QA e le persone di supporto inviano. In questo modo, sarai in grado di avere comprensibili tracce dello stack e informazioni sui simboli.

1

Come la maggior parte delle persone su questo thread ha detto: no, non è necessario spedire i file PDB; ma davvero dovresti se hai intenzione di rilasciare il codice in the wild.

Si tratta davvero di poter supportare la tua applicazione. Senza il PDB, quando l'applicazione si arresta in modo anomalo, tutto il tuo utente sarà in grado di dirti che è l'indirizzo di memoria grezza in cui si è verificato l'arresto anomalo dell'applicazione; ma con il file PDB si ottiene un errore su cui si può effettivamente fare qualcosa.

+1

, in realtà, possono facilmente inviarti un dump della memoria (non deve nemmeno essere uno completo, nessun PC Windows può generarne uno) che ti dirà almeno l'intero callstack e solitamente il le variabili passate nella chiamata di funzione più in alto –

Problemi correlati