Frage

Wenn ich eine DLL (das in Release-Modus gebaut wurde) und die entsprechende PDB-Datei ist es möglich, zu debuggen (Schritt-in) Klassen / Methoden in dieser DLL enthält?

Wenn ja, was ist die erforderlichen Schritte / Konfiguration (zum Beispiel, wo die PDB-Datei setzen)?

Edit:

Wenn hat die PDB-Datei an der gleichen Stelle wie die DLL (in ist / Debug-Verzeichnis einer einfachen Konsole Testanwendung). Ich kann die Symbole sehen, dass für die DLL geladen werden (im Ausgabefenster und auch im Fenster Module), aber immer noch kann ich nicht in die Methoden dieser DLL Schritt.

Könnte dies das Ergebnis der Compiler-Optimierungen (wie von Michael in seiner Antwort beschrieben)?

War es hilfreich?

Lösung 3

Schließlich fand ich, was dazu führen, die Probleme Debuggen einer DLL, die in Release-Konfiguration gebaut wurde:

Zu allererst es funktioniert im Grunde wie erwartet. Das bedeutet, wenn ich eine DLL in Release-Konfiguration gebaut haben und die entsprechende PDB-Datei, dann kann ich die Klassen / Methoden in dieser DLL enthalten debuggen.

Als ich das erste versuchte, versuchte ich leider in Methoden einer Klasse zu dem Schritt, die die DebuggerStepThroughAttribute hat, z:

[System.Diagnostics.DebuggerStepThrough]
public class MyClass {
    public void Test() { ... }
}

In diesem Fall ist es natürlich nicht möglich, in das Verfahren zu dem Schritt aus dem Debugger (wie erwartet / beabsichtigt).

So funktioniert alles wie vorgesehen. Vielen Dank für Ihre Antworten.

Andere Tipps

Die PDB ist in der Regel (zumindest für mich) erkannt, wenn es neben der dll ist (wie bei den intellisense XML-Dateien).

Alternativ; Sie einen Haltepunkt müssen, nachdem das Modul geladen ist ...

In der Pause-Punkt, bringen die "Module" Fenster (Strg + D, M - oder Debug-> Windows-> Module) nach oben. Rechtsklick auf Ihrer dll „Load Symbole aus“, „Symbolpfad“ usw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top