2 Stimmen

Warum funktionieren die Haltepunkte in VS2008 nicht mehr?

Ich habe eine C# ASP.NET-Web-App. Die Breakpoints in der Datenbankebene stoppen die Ausführung nicht mehr, aber die Breakpoints in der Benutzeroberflächenebene funktionieren immer noch gut. Kann jemand raten, warum das passieren könnte?

Ich habe bereits alle üblichen Verdächtigen überprüft (Debug-Build ist für alle Projekte aktiviert) und alle Projekte in der Lösung neu kompiliert...

1voto

Tyler Punkte 3220

Ich würde sicherstellen, dass die UI-Schicht auf die entsprechenden 'debug' .dlls verweist. Ich würde auch in Betracht ziehen, CTRL+ALT+U zu drücken (Modules-Ansicht), wenn Sie debuggen, um zu sehen, ob Symbole für Ihre BLL und DAL .dlls geladen sind. Wenn nicht, kann Visual Studio keine .PDBs für diese Datei finden.
Sind die Debug-Dateien .PDBs im gleichen Verzeichnis wie die .dlls, die aus dem Fenster "Module" referenziert werden?

1voto

FlySwat Punkte 165766
  • Den Debugger an den ASP.NET-Prozess anhängen und auf das Fenster "Module" klicken. Stellen Sie sicher, dass Debugging-Symbole für die Assemblys geladen sind, die Sie debuggen möchten.
  • Vergewissern Sie sich, dass die Benutzeroberfläche auf die Debug-Assemblys und nicht auf die Release-Assemblys verweist.
  • Stellen Sie sicher, dass die .PDB-Dateien im Verzeichnis /bin/debug/ liegen.
  • Stellen Sie sicher, dass Sie die gesamte Lösung neu erstellen, bevor Sie den Debugger anhängen.
  • Wenn die Datenschicht in einer separaten Lösung liegt, fügen Sie das Projekt der Benutzeroberflächen-Lösung hinzu (Sie müssen keine Referenz hinzufügen, diese sollte bereits vorhanden sein, da sonst Ihr Code nicht kompiliert wird), damit der Debugger den vollständigen Code anzeigen kann.

1voto

Guy Punkte 62474

Danke für die Antworten und Ideen, Leute - ich hatte bereits alles davon ausprobiert oder Variationen davon.

Ich denke, es muss ein sehr subtiler VS-Bug sein. Ein Kollege schlug vor, die Funktion, auf der ich einen Break setzen wollte, öffentlich zu machen (zuvor "undefiniert", also implizit privat) und es erneut zu versuchen. Ich habe das gemacht und der Breakpoint begann getroffen zu werden. Dann habe ich das öffentliche Schlüsselwort entfernt und der Breakpoint wurde weiterhin getroffen. Keine Ahnung, warum das es gelöst hat, aber es hat funktioniert.

Vielen Dank für Ihre Hilfe!

1voto

Nick Randell Punkte 17045

Ein paar Vorschläge. Der erste ist, den Status des Unterbrechungspunkts in der Quellzeile zu überprüfen. Ist es ein solider roter Ball? Wenn nicht, deutet dies im Allgemeinen darauf hin, dass die betreffende Datei nicht diejenige ist, die für den Build verwendet wird. Zweitens - werfen Sie einen Blick auf die Modulsicht und sehen Sie, welches Modul und welche Symbole geladen wurden. Es kann sein, dass es nicht das ist, was Sie erwarten.

Warum - keine Ahnung!

Nick

0voto

Iain Holder Punkte 13981

Hast du versucht, deine Papierkörbe zu löschen, bevor du neu kompilierst?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X