2014-10-22 8 views
5

Ich benutze dotPeek v1.2 mit VS2013 Update 3 zu versuchen, einen referenzierten C#. DLL-Code zu debuggen. Ich habe alle Anweisungen aus dem folgenden Tutorial befolgt: Using dotPeek as a Symbol Server (http://localhost:33417/ ist als Symbol Speicherort, etc.) Um ehrlich zu sein habe ich eine Reihe von Artikeln wie this und this gelesen, durchkämmt alle erforderlichen Einstellungen und wirklich Port 't gesehen 1 funktionierende Lösung des Debuggens eines Drittanbieters nicht-Framework .dll, so dass ich nicht davon überzeugt bin, das ist ein voll funktionsfähiges Produkt von diesem Aspekt.dotPeek Issue Debugging 3rd Party .dll

Regardelss, dotPeek sollte erlauben, sobald der Symbol-Server gestartet wird, um Code von 3rd Party Assemblys von VSNET gemäß ihrer Dokumentation zu debuggen und zu debuggen. Ich weiß, welche .dlls für dotPeek ausgewählt werden, weil ich ihren Pfad von Debug -> Windows -> Module untersucht habe.

Ich habe zufällig ReSharper auch installiert, die mir erlaubt zu dekompilieren, wenn ich mit der rechten Maustaste auf eine Zeile Code und wählen Sie "Go to Declaration". Das Problem ist, dass der Symbol-Server scheinbar nichts unternimmt, um den Code zum Debug-Zeitpunkt zur Verfügung zu stellen. Vielmehr scheint die von ReSharper bereitgestellte dekompilierte Quelle das zu sein, in die VS.NET springen möchte. Das Problem ist, ich folgende Fehlermeldung immer erhalten:

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?

Wenn ich sage: ‚Ja‘ und Schritt im Debugger auf den Leitungen zu sein scheint, die in der Datei gibt es nicht und ist nicht synchron. Dies macht Sinn, da es die .cs Klasse von der ‚Quelldatei‘ Lage zeigt aber hat die DLL aus dem jedoch

/bin/Debug geladen, ich verstehe nicht, warum dies ohnehin als dotPeek geschieht sollte die geladene serviert werden Symbole aus der /bin/Debug und nicht versuchen, in jede dekompilierte Quelle trat ReSharper hatte vorgestellt.

Wie konfiguriere ich das so VS2103 wird tatsächlich Debug-Symbole und Codes von dotPeek serviert?

Antwort

14

Ein großes Problem ist, dass Sie sicherstellen müssen, dass auf der Seite Extras -> Optionen -> Debugging -> Symbole ein gültiger Pfad für das Cache-Verzeichnis festgelegt ist.

Auch auf der Haupt-Debug-Optionen Seite (Tools -> Optionen -> Debuggen -> Allgemein) stellen Sie sicher:

  • Uncheck "Enable Just My-Code" Option
  • Uncheck die "Quelle .NET Framework aktivieren Schritt" Option
  • prüfen "Enable Source-Server-Unterstützung" Option
  • Uncheck die „Dateien genau Erfordern Quelle der ursprünglichen Version

Es ist auch lohnt die passen‚Print Quellserver Diagnosemeldungen an das Ausgabefenster‘Option, und die Überprüfung der Ausgabefenster bei dem Versuch, in 3rd-Party zu Schritt Code. Es sollte hoffentlich auf irgendwelche Probleme hinweisen.

Dies ist, wie ich Dinge eingerichtet habe, und ich kann 3rd-Party-DLLs debuggen (offensichtlich muss DotPeek die DLL im Assembly Explorer geladen haben, bevor Sie mit dem Debuggen beginnen).