2010-02-09 18 views
18

Ho letto questo articolo: Setting up a Symbol Server, che entra nei dettagli su come configurare un server di simboli condiviso per il mio team.Cosa mi dà l'impostazione di un server di simboli?

La cosa che mi sto chiedendo è di aggiungere i miei simboli nel negozio.

La mia domanda è questa: che cosa guadagno esattamente da questo?

Supponiamo che ho il seguente processo di compilazione:

  1. affido cambiamenti nel mio repository Subversion
  2. strumento
  3. Un TeamCity CI raccoglie quei cambiamenti e fa un accumulo + unità di prova
  4. I binari sono impegnati in un repository Subversion diverso (per fare riferimento alle applicazioni che applico)

Se aggiungo al terzo punto sopra, la possibilità di aggiungere i file creati nel negozio di simboli, cosa mi dà?

Se creo un programma e faccio riferimento ai file binari assegnati al repository, ottengo entrambi i file .dll, .pdb e .xml (supporto intellisense), quindi le tracce dello stack sembrano già contenere tutto ciò di cui ho bisogno.

È un rimpiazzo per la distribuzione di .pdb?

O è solo per quando ho bisogno di aprire un file .DMP in WINDBG e analizzare i suoi stack, dove presumibilmente non ho i file eseguibili, solo il file .DMP fornito da qualcun altro? (ovvero, gli eseguibili provengono forse da una versione precedente e mi è stato dato solo il file .DMP)

risposta

18

Non essere ovvio: il server dei simboli fornisce simboli. In questo modo puoi eseguire il debug dei minidump che torni dai tuoi clienti quando il tuo codice si blocca e brucia. È assolutamente fondamentale eseguire analisi post-mortem su problemi reali che il cliente sta riscontrando. Perché nel momento in cui la tua versione di diversi mesi del tuo codice ottiene l'opportunità di bloccarti sul computer del tuo cliente, hai già fatto un paio di versioni.

Lo sforzo reale non è nell'impostare un server di simboli, ma è assicurarsi che abbia i file PDD giusti per darti una buona opportunità di debug. Controllare il processo di costruzione è una parte cruciale di questa equazione.

+2

Penso che questa sia la mia risposta allora. Per il mio team, i nostri tester e utenti, un normale rapporto di crash contiene già tutto ciò di cui abbiamo bisogno, ma ultimamente ho osservato alcuni problemi di utilizzo della memoria, usando WINDBG, e se ricevo un file di dump dal nostro client che è più di una versione intermedia vecchia, non avrò i file localmente. Ciò significa che questa è l'area in cui posso utilizzare il server dei simboli. –

+1

Hai capito, buona fortuna. –

1

Se si hanno utenti che potrebbero riscontrare problemi con il codice ma non hanno accesso al repository Subversion, come farebbero ottieni loro i simboli di cui hanno bisogno? Ad esempio, se stavi sviluppando un'applicazione per il reparto contabilità e volessi che provassero una versione anticipata del codice, se ne conoscesse una traceback, ti ​​chiederebbe di avere una Subversion enlistmant?

Un server di simboli è semplicemente una singola posizione di rete in cui i simboli sono resi prontamente disponibili a chiunque ne abbia bisogno.

Non esiste alcuna alternativa ai file .pdb se si desiderano informazioni sui simboli.

+0

Per ottenere utili stacktraces nei nostri strumenti di supporto, distribuiamo già file .pdb con la nostra applicazione. Quindi la mia domanda. Fondamentalmente, per ogni .dll (che costruiamo noi stessi), spediamo anche il corrispondente file .pdb. Le tracce dello stack che vengono inviate tramite la funzione di rapporto sugli arresti anomali incorporata contengono già informazioni sul numero di file e sulla linea. Questo significa che in questo contesto, non c'è davvero un uso per questo server di simboli? Se il programma si blocca su una macchina tester, come farei a recuperare i simboli per le librerie che non sono nostre, da questo server? L'articolo non dice. –

+0

Direi che nella situazione che descrivi, una condivisione di simboli non sarebbe necessaria. I grandi vantaggi di un server di simboli sono (1) minimizzare il numero di file inclusi nella distribuzione/dimensione della distribuzione e (2) creare una posizione canonica per i file di simboli (non è necessario tenere traccia delle versioni). Sembra che tu abbia a che fare con questi problemi in altri modi. – jfawcett

1

Date un'occhiata a questo post sul blog: Source Server and Symbol Server Support in TFS 2010

Si tratta del server di simboli & Server Source offre specificamente in TFS 2010, ma si può prendere un sacco di informazioni e di applicarlo ad altri sistemi di compilazione e di controllo del codice sorgente come bene.

Problemi correlati