2010-05-18 10 views
24

Ho bisogno di qualcosa che possa generare un PDB da un file DLL (codice C# .NET), esiste un programma gratuito per farlo?Genera PDB da file DLL .NET?

+1

In teoria si potrebbe fare, dal momento che con una dll .net è possibile ottenere il codice sorgente originale (entro l'errore sperimentale). L'unico pezzo mancante è il formato del file 'PDB', che è un segreto strettamente sorvegliato. Reflector può prendere una DLL e trasformarla in una soluzione, in cui è possibile utilizzare Visual Studio per compilarlo * e generare contemporaneamente il PDB *. Stai usando Visual Studio per generare un PDB per te, dal momento che conosce il formato segreto. –

risposta

2

È necessario il codice sorgente per generare un PDB.

+0

In altre parole: non è possibile creare un PDB quando tutto ciò che si ha è la DLL. –

+0

sì, è così. –

+10

Bene, posso usare Reflector per ottenere l'origine, quindi cosa mi serve per ottenere il PDB? – BrunoLM

10

Il PDB contiene ulteriori informazioni sulla libreria e può essere generato solo allo stesso tempo che dll viene generato dal codice sorgente.

Per consentire la generazione di file PDB Vai al progetto Proprietà, scheda, ... pulsante Avanzate costruire e selezionare nel campo Debug info "PDB-only" o "pieno":

alt text

Aggiornamento:dotPeek a partire dalla versione 1.2 è in grado di generate PDB from DLL.

21

Anche Non ci sono fonti e codice offuscato, è possibile creare PPB di ricompilazione con ildasm e ilasm:

  • assemblaggio decompilare da ildasm: ildasm /out=assembly_name.il assembly_name.dll
  • complile con ilasm: ilasm assembly_name.il/dll/PDB
+0

Questa è un'opzione decente se combinata con http://www.debuginfo.com/tools/chkmatch.html - Tuttavia, lo stepping di origine sarà linee di IL, non di C# o vb.net. – JJS

+0

Questa dovrebbe essere la risposta corretta! – spetzz

16

In realtà si può fare anche con dotPeek dalla versione 1.2 in poi.

Fare clic con il pulsante destro del mouse su Assembly Explorer e selezionare "Genera Pdb". Ha anche la possibilità di generare file per gli assembly di riferimento tutti in una volta.

enter image description here

+2

Funziona solo se l'assieme contiene una directory di debug – user1069816