Ho un'applicazione VB.net. Attualmente la versione di rilascio dell'applicazione viene prodotta senza un file PDB. Questo mi dà registri degli errori privi di dettagli utili come i numeri di riga. Sto cercando di includere i file PDB con build futuri, ma mi piacerebbe sapere quali sono i vantaggi e gli svantaggi di questo (prestazioni saggio, dimensioni saggio, sicurezza del codice saggio)Vantaggi e svantaggi di includere i file PDB con l'applicazione di rilascio
risposta
Quando si distribuiscono i simboli di debug per la tua applicazione, diventa davvero facile per qualcuno di venire avanti e decodificare il tuo lavoro, che alcune persone trovano indesiderabile. Allo stesso modo, è necessario distribuire più file e il progetto distribuibile diventa più grande. I file PDB non causano rallentamenti nell'app, poiché la spedizione di un PDB non sempre impedisce di perseguire ottimizzazioni (devi solo fare attenzione: le impostazioni predefinite del progetto "Debug" tendono a non ottimizzare i tuoi output quando generare PDB).
so che sto andando ottenere picchiato per questo, ma ...
Sono d'accordo con Dave Markle, ma mi piacerebbe aggiungere che un vantaggio di pubblicare i file PDB è, come hai detto , MOLTO carino per il debug.
Detto questo, non vendo software e il codice che scrivo è tutto per uso interno nella nostra azienda. In questo contesto, non vedo un problema con la messa in produzione del codice di debug, insieme ai file PDB. Non ho mai visto un successo in termini di prestazioni e, in tutta onestà, raramente i nostri utenti ci forniscono le informazioni corrette se riscontrano eccezioni non gestite. Certo, proviamo a gestire le eccezioni correttamente, ma come sai, gli errori accadranno. La nostra strategia consiste nell'aggiungere un gestore di eccezioni globale a TUTTI i progetti e registrare tali eventi nel database. Questi errori contengono i numeri di riga perché includiamo i file di debug e, di conseguenza, siamo in grado di identificare e reagire rapidamente al codice errato, correggerlo e ottenere più applicazioni prive di bug. Per me (e per i nostri utenti) questo è un vantaggio enorme di cui non vorrei fare a meno.
Quindi, se siete in una situazione simile, dico dimenticare la posizione ufficiale (in questo caso) e andare avanti e pubblicare i file PDB con UNA importante avvertimento.
Assicurarsi che qualsiasi applicazione Web distribuita con i file PDB sia completamente sicura che TUTTE le eccezioni siano gestite correttamente e che non si espongano inavvertitamente righe di codice in una pagina di errore Asp.NET standard.
Trovo utile avere anche le informazioni di debug create per la versione di rilascio - aiuta a catturare i bug. Non fa rallentare il programma. Ma non dovresti spedire il file PDB con la tua applicazione, se non vuoi che altri siano in grado di eseguirne il reverse-engineering più facilmente. Dagli solo ai tester.
L'applicazione è un'applicazione intenzionale. Sarà usato solo all'interno della nostra azienda.Le restrizioni dell'utente impediscono agli utenti di poter decodificare il codice – zeocrash
Creare pdbs per la build di rilascio, ma non spedirli. Mantenere il pdbs da qualche parte sicuro con la build e il codice sorgente corrispondenti. Se si verifica un arresto anomalo in tempo reale o simili, è possibile utilizzare il pdbs per eseguire il debug post-mortem utilizzando Debugging Tools for Windows o Visual Studio.
Proviamo a mantenere tutte le eccezioni gestite. Quindi non facciamo il debug post mortem. Sulle eccezioni gestite registriamo la traccia dello stack sul database – zeocrash
Il debug post mortem è utile anche quando non si verificano eccezioni generate, ad es. Se l'applicazione si blocca. È possibile acquisire un mini-dump del processo sospeso e quindi eseguirne il debug in remoto utilizzando il pdbs e il codice sorgente. – Polyfun
- 1. Vantaggi e svantaggi di NHibernate
- 2. Vantaggi e svantaggi dell'utilizzo di ReactJS
- 3. Vantaggi e svantaggi dell'utilizzo di Enterprise Library
- 4. Android NDK vantaggi e svantaggi
- 5. Quali sono i vantaggi e gli svantaggi dell'utilizzo di OpenID?
- 6. Quali sono i vantaggi e gli svantaggi dell'utilizzo di ARC?
- 7. Annotazioni vs XML, vantaggi e svantaggi
- 8. MsBuild non genera file PDB nella configurazione di rilascio
- 9. La versione di rilascio C# ha ancora il file .pdb
- 10. Vantaggi e svantaggi di Java EE e servlet
- 11. Quali sono i vantaggi/svantaggi dell'uso di Maven?
- 12. Vantaggi/svantaggi per i siti Web generati con Javascript
- 13. Vantaggi/Svantaggi delle guerre esplose
- 14. Postgresql enum quali sono i vantaggi e gli svantaggi?
- 15. Debug di una versione di rilascio di una DLL (con file PDB)
- 16. Quali sono i vantaggi/svantaggi di Seam over Spring?
- 17. Vantaggi/svantaggi dei puntatori automatici
- 18. NServiceBus: vantaggi e svantaggi dell'uso di NServiceBus Distributore
- 19. vantaggi/svantaggi di opzione pconnect in CodeIgniter
- 20. Vantaggi e svantaggi dell'uso di immagini codificate in Base64
- 21. Vantaggi e svantaggi di avere la chiave primaria composita ...
- 22. IIS Web Garden vantaggi/svantaggi
- 23. Vantaggi e svantaggi delle relazioni polimorfiche di Ruby on Rails
- 24. Python: vantaggi e svantaggi di _mysql vs MySQLdb?
- 25. Quali sono i vantaggi e gli svantaggi dell'utilizzo di PhoneGap e Titanium?
- 26. I vantaggi e i vantaggi di essere un programmatore professionista?
- 27. Vantaggio e svantaggi di CardView
- 28. xUnità o NUnit? Quali vantaggi e svantaggi l'uno dell'altro?
- 29. Interrogazioni incrociate tra database, unisce vantaggi e svantaggi
- 30. È necessario distribuire il file .pdb con la compilazione in fase di rilascio?
Che cosa stai cercando di ottenere con i file PDB? A meno che non si offusca il codice, si hanno già delle belle tracce di stack con il codice gestito (e suppongo che PDB renda comunque impossibile l'offuscamento ...). L'unico vantaggio che si ottiene sono i simboli "nascosti" come la gente del posto e i nomi dei parametri. – Krumelur
Drats. Mi piace questa domanda, ma è già stata posta qui: http://stackoverflow.com/questions/1307482/whats-the-risk-of-deploying-debug-symbols-pdb-file-in-a-production-environment – David
I nomi dei parametri e i numeri di riga sono molto utili. La nostra app, è molto grande costruita da diversi sviluppatori diversi su diverse versioni di VB. Attualmente abbiamo il nome delle procedure nello stack, ma sarebbe bello avere un po 'più di dati. – zeocrash