2009-07-08 7 views
2

Also mein C# -Programm ist plötzlich aufgehört/disappearing/schließen/abstürzt sogar im Debug-Modus. Wie kann ich es brechen/pausieren/stoppen, um herauszufinden, wo es verursacht wurde?C# Programm beenden/plötzlich stürzen, wie man es bricht?

+1

FYI, das ist stark charakteristisch für Code, der den Stapel doppelt Fehler. Haben Sie in Ihrem Prozess nicht verwalteten Code ausgeführt, der möglicherweise die letzte Seite des Stapels beschädigt? Haben Sie unbegrenzte Rekursionen? –

Antwort

5

Setzen Sie einen Haltepunkt (indem Sie auf die linke Seite der Zeilennummern klicken - es ist ein roter Kreis), dass Sie wissen, ist vor dem Punkt, wo es abstürzt und dann durch (mit F8). Die letzte Aussage, auf der du stehst, ist die, auf die es stürzt.

3

Wenn Sie in Visual Studio sind, können Sie "Stop, wenn eine Ausnahme ausgelöst wird" aktivieren - gehen Debug-> Ausnahmen. Dies ist oft sehr nützlich, um die genaue Ursache des Problems zu erkennen.

3

Sie können möglicherweise mehr mit einem unhandled exception handler lernen. Wenn Sie sich jedoch im Debug-Modus befinden, sollten Sie ihn standardmäßig sehen können. Überprüfen Sie Ihre Debug: Exceptions-Einstellungen, um sicherzustellen, dass Sie sie nicht versehentlich im Debug-Modus gemeldet haben.

1

als Eric schlug vor, Schritt für Schritt durchzugehen ... auch immer versuchen/fangen in Ihrem Ende Anrufer-Apps, um Ausnahmen zu verwalten.

0

Sie können F10 drücken, um das Debuggen Ihres Projekts zu starten. Dadurch wird am Anfang der Main-Methode ein Haltepunkt gesetzt, und Sie können von dort aus mit F11 durch den Code gehen, um zu sehen, an welchen Punkten er abstürzt.

1

Es kann sich auch lohnen, Ihren Code auf Vorkommen von Environment.FailFast zu überprüfen, nur für den Fall, dass jemand versucht (zu) schlau zu sein.