2012-03-13 5 views
44

C'è un modo per eseguire il debug in una dc decompilata utilizzando Resharper e, in caso affermativo, come si fa?Il debug di ricondizionamento di una terza parte ha decompilato la dll

Ad esempio, sto cercando di eseguire il debug in System.Web.Http.ApiController dove ho decompilato e posso vedere la fonte.

Ho impostato un punto di interruzione ma quando eseguo l'applicazione non si interrompe nel punto di interruzione decompilato durante il debug.

+0

Avete già esaminato le opzioni di debug di Visual Studio (Strumenti-> Opzioni-> Debug-> Generale). Per esempio. * Abilita solo il mio codice (solo gestito) * dovrebbe essere disabilitato. – brgerner

+0

ReSharper 6 ha una funzione di decompilazione automatica: Forse questa origine decompilata è sufficiente. – brgerner

risposta

6

Per quanto ne so, non è possibile eseguire il debug del codice sorgente .NET decompilato utilizzando ReSharper (fino a v6.1)

Tuttavia, this article spiega come è possibile eseguire il debug nella fonte .NET con Visual Studio 2010: se hai bisogno di istruzioni per un'altra versione di VS, usa il link "Altre versioni" nella parte superiore della pagina.

+0

È possibile decompilare le DLL utilizzando dotPeek e quindi configurare un server di simboli in VS. Vedere questo articolo https://medium.com/@jackspektor/not-just-my-code-how-to-debug-third-party-libraries-without-decompiling-them-8e47e706dbe7 –

1

È necessario disporre dei file *.pdb corrispondenti da inserire nel codice.

In caso contrario, potrebbe essere utile decompilare il file binario con ad es. Telerik è disponibile gratuitamente JustDecompile.

Tuttavia, è necessario tenere presente che questo potrebbe violare gli accordi di licenza del provider di terze parti.

10

No, ciò non sarà possibile solo con Visual Studio e ReSharper, ma c'è un altro prodotto che può essere d'aiuto, .NET Reflector.

L'edizione VSPro ha un "Debug assembly che utilizza il debugger di Visual Studio, anche se non si dispone della funzione source", che consente di produrre file .pdb e di decompilare il codice sorgente per gli assembly .NET già compilati.

Per esperienza, ha avuto alcuni problemi con alcuni assiemi, ma non riesco a ricordare perché lo fosse, quindi può o non può aiutarti.

Con ReSharper è possibile esaminare il codice sorgente decompilato dagli assembly, praticamente nello stesso modo in cui Reflector produce l'origine decompilata, ma con ReSharper non è possibile eseguire il debug del codice con tali file di origine.

6

[Full disclosure - I am a Telerik Employee] Con l'ultima versione di Teleak JustCode, è ora possibile eseguire il debug del codice decompilato senza mai uscire da Visual Studio. Per ulteriori informazioni, puoi leggere il mio post sul blog che annuncia la funzione here.

+1

Questo è l'unico che ha funzionato per me. .Net Reflector continuava a bloccare lo studio visivo 2010 e Resharper consentiva la visualizzazione del codice decompilato ma non il debugging. – Dwayne

+1

Ma non è economico :) –

+0

Preferisco non fare il debug per quei soldi lol – sotn

31

Sì, è possibile con Resharper 9.0 (non sicuro per le versioni precedenti).

Vai a "ReSharper Menu"> "Windows"> "Assemblea Explorer"

Aggiungi un'assemblea lì con il primo pulsante a sinistra (con un + su di esso)
Quindi fare clic destro su di esso e scegli "Genera Pdb ..." (aspetta fino al termine) e ora sei in grado di infrangere il codice.
Nota tuttavia, come ha detto Jens, probabilmente termini di licenza pausa

+4

Ho scritto un post sul blog che spiega come farlo più in dettaglio: http://blog.pglazkov.com/2016/02/how- to-debug-any-library-source-code.html –

+1

Se si sta già eseguendo il debug, andare su "Debug"> "Windows"> "Moduli". Selezionare l'assembly che si desidera eseguire il debug e caricare il "pdb" generato in precedenza da Resharper. – polkduran

+0

Per utilizzare questo suggerimento è necessario selezionare _Mostra codice esterno_ nel menu di scelta rapida dello stack frame nella finestra _Call Stack_ in Visual Studio. – rgb

5

Selezionare un assembly nella finestra dell'assieme Explorer e fare clic su Esporta al progetto sulla barra degli strumenti, oppure scegliere Esporta in progetto nel menu di scelta rapida.

Maggiori informazioni here

Inoltre, controllare che siano presenti questa configurazione nella pagina delle opzioni di debug principale (Strumenti -> Opzioni -> Debug -> Generale):

deselezionare l'opzione "Attiva Just My Code"

Deselezionare l'opzione "Enable .NET Framework fonte passo" opzione

selezionare l'opzione "Attiva supporto server di origine"

Deselezionare "Richiede i file di origine esattamente corrispondenti alla versione originale

+1

Dopo aver provato tutto, queste impostazioni lo hanno fatto per me, grazie! –

Problemi correlati