Ich habe festgestellt, dass die IDE manchmal bricht, wenn meine Anwendung beendet wird.
Wenn dies passiert, ist der Aufruf-Stack leer und die Thread-Liste zeigt einige Threads, die mir keine Informationen enthüllen.
Wenn ich "Debugger" - "Step into" wähle, wird die IDE scheinbar normal beendet, so dass ich nicht weiter untersuchen kann, was das Brechen verursacht.
Durch Klicken auf "Für laufende Aufgaben prüfen" werden keine Aufgaben angezeigt. Wenn Sie auf "Ausführung fortsetzen" klicken, wird das Debugging scheinbar normal beendet. Wenn Sie auf "Diagnosewerkzeuge anzeigen" klicken, wird das Ereignis "Bei Ausführung stoppen: Bei Ausführung gestoppt" angezeigt, das mir nichts mehr sagt.
Ein Screenshot ist angehängt.
Wie kann ich herausfinden, was diese Pause verursacht hat?
Bearbeiten: Ich habe versucht, was ein Forumsmitglied vorgeschlagen hat, aber das würde nichts ergeben, was mir helfen würde, denke ich. Dies ist ein Screenshot:
Ich habe keine Möglichkeit gefunden, das Problem tatsächlich zu debuggen. Ich habe das Problem auf Brute-Force-Art gelöst:
Ich habe alle Assemblys und COM-Objekte nacheinander entfernt, bis der Fehler verschwunden ist.
In meinem Fall hatte ich eine öffentliche Kontrolle mit einem WithEvents in einem Modul. Es scheint, dass VB.NET das überhaupt nicht mochte. Von nun an werde ich die Kontrolle und ihr Ereignis in eine Form bringen.
Das Hauptproblem bleibt jedoch bestehen: Visual Studio bietet keine Hilfe, um das Problem leicht zu isolieren.
In einer meiner Webanwendungen hatte ich das gleiche Problem, um herauszufinden, was falsch war. Nachdem ich nach ähnlichen Problemen gesucht hatte, rieten die meisten dazu, meine Debugging-Optionen zu ändern. Also, in den Debugging-Optionen, unter allgemein, habe ich die zweite Option "Alle Prozesse brechen, wenn ein Prozess bricht" und fast am unteren Rand, "Enable native Edit and Continue"; "Änderungen übernehmen und fortfahren".
Damit hat meine App schließlich aufgehört, wo ich das Problem hatte (ungültige Zeichen in einer Zeichenfolge, die Ajax nicht mochte) und konnte die Werte auswerten und herausfinden, was falsch war, den Code auf dem Weg bearbeiten, bis es funktionierte . Hier ist ein Screenshot meiner Debugger-Optionen. Ich hoffe, Sie fangen Ihren Fehler:)
Wenn Sie sich im Debugger befinden, können Sie zum Beobachtungsfenster navigieren und Pseudovariablen verwenden, um einige Informationen über die Ursache anzuzeigen. Besonders nützlich ist $exception
.
Überprüfen Sie das Dokument über Pseudovariablen .
Sie können den Code, in dem die Ausnahme auftritt, möglicherweise nicht sehen, wenn es sich um einen Teil einer Bibliothek oder etwas handelt, das nicht von Ihnen geschrieben wurde. Folgendes könnte helfen:
Debuggen & gt; Optionen & gt; Allgemein & gt; Deaktivieren Sie "Nur Code aktivieren"
Dies kann auch auftreten, wenn eine WinForms-Anwendung mit einem Thread mehr als 60 Sekunden benötigt, um eine Aktion im Hauptthread abzuschließen.
Ich habe es auf die schmutzige Art und Weise gelöst, indem ich Application.DoEvents () in regelmäßigen Abständen vom Haupt-Thread aus aufgerufen habe, während zu langer Verarbeitung. Ausnahmen, die zwischen den Aufrufen von Application.DoEvents auftreten, werden in der IDE ordnungsgemäß behandelt.
Tags und Links ide debugging vb.net visual-studio-2017