2014-10-22 14 views
5

Io uso dotPeek v1.2 con VS2013 Update 3 per tentare di eseguire il debug di un codice C# .dll di riferimento. Ho seguito tutte le indicazioni del seguente tutorial: Using dotPeek as a Symbol Server (http://localhost:33417/ è impostato come posizione simbolo, ecc.) Per essere onesti, ho letto un sacco di articoli come this e this, sfruttato tutte le impostazioni necessarie e davvero rifugio Ho visto 1 soluzione funzionante di debug di un file .dll non framework di terze parti quindi non sono convinto che si tratti di un prodotto completamente funzionante da questo aspetto.dotPeek Problema di debug di terze parti .dll

Note legali, dotPeek deve consentire l'avvio del server dei simboli e il debug del codice dagli assembly di terze parti da VSNET in base alla relativa documentazione. So quali .dlls selezionare per dotPeek perché ho ispezionato il loro percorso da Debug -> Windows -> Moduli.

Mi capita di avere anche ReSharper installato che mi consente di decompilare quando faccio clic con il tasto destro del mouse su una riga di codice e selezionare "Vai alla dichiarazione". Il problema è che il server dei simboli non sta facendo nulla per aiutare a servire il codice in fase di debug. Piuttosto, la fonte decompilata fornita da ReSharper sembra essere ciò in cui VS.NET vuole entrare. Il problema è che ho sempre ottenere il seguente errore:

Source file: C:\Users\username\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches_ReSharper.Meijer.Ecommerce.Nav.WebAppServices.-382002776\Decompiler\decompiler\53\66e7ccc2\MyClass.cs

Module: C:\Projects\MyProject\bin\Debug

Process: [24808] vstest.executionengine.x86.exe

The source file is different from when the module was built. Would you like the debugger to use it anyway?

Se dico 'sì' e passo nel debugger sembra essere su linee che non esistono nel file e non è sincronizzato. Questo ha senso in quanto sta mostrando la classe .cs dalla posizione 'Fonte File', ma ha il dll caricato dal /bin/Debug

Tuttavia, non capisco perché questo sta accadendo in ogni caso come dotPeek dovrebbe essere servendo la carica simboli dal /bin/Debug e non tentare di entrare in alcuna fonte decompilato ReSharper aveva presentato.

Come si configura questo modo sarà VS2103realtà di debug i simboli e il codice serviti da dotPeek?

risposta

14

Un grande trucchetto è che è necessario assicurarsi di avere un percorso valido impostato per la directory della cache in Strumenti -> Opzioni -> Debug -> pagina Simboli.

Inoltre, sulla pagina delle opzioni di debug principale (Strumenti -> Opzioni -> Debug -> Generale) assicuratevi:

  • Deseleziona il "Attiva Just My Code" opzione
  • Deseleziona l'opzione "Abilita .NET Framework fonte passo" l'opzione "Abilita il supporto server di origine"
  • opzione
  • Controllare Deseleziona il "Richiedi file di origine in modo che corrisponda esattamente alla versione originale

E 'anche la pena di verificare il 'server di origine Stampa messaggi di diagnostica alla finestra di uscita' opzione, e controllando la finestra di output quando si cerca di entrare in 3a parte codice. Dovrebbe, si spera, indicare eventuali problemi.

Ecco come sono state configurate le cose, e posso eseguire il debug di dll di terze parti (ovviamente, dotPeek deve avere il file .dll caricato in Assembly Explorer prima di avviare il debug).