it-swarm.com.de

Programm und Debugger werden ohne Hinweis auf ein Problem beendet

OK, nicht ganz ein Heisenbug, aber ähnlicher Natur.

Ich entwickle eine WPF-Anwendung. Beim Debuggen erreicht die Logik einen bestimmten Punkt, und die Anwendung wird ohne Grund beendet. Der VS-Debugger fängt nichts auf und der einzige Hinweis auf ein Problem ist Folgendes im Ausgabefenster:

Das Programm '[6228] SomeApp.vshost.exe: Managed (v4.0.30319)' wurde mit dem Code 1073741855 (0x4000001f) beendet.

Beim Debuggen der Release-Version oder beim Ausführen des Debug-Builds aus dem Debugger (eigentlich alle Combos, auf denen die Debug-Version nicht im Debugger ausgeführt wird), funktioniert alles einwandfrei. 

Ich versuche, unbehandelte Ausnahmen mit folgendem Code zu erfassen:

        AppDomain
            .CurrentDomain
            .UnhandledException +=
            (sender, e) =>
            {
                Debug.WriteLine("Unhandled Exception " + e.ExceptionObject);
            };
        Application
            .Current
            .DispatcherUnhandledException +=
            (sender1, e1) =>
            {
                Debug.WriteLine("DispatcherUnhandledException " + e1.Exception);
            };

... aber ich fange nichts.

Ich überlege mir, die App mit Debug-Ausgabeanweisungen zu überlisten, aber es ist äußerst asynchron, so dass das Lesen sowohl mühsam als auch beschwerlich ist. 

Also sag mir, wenn du kannst ... wie stelle ich fest, dass WTF vor sich geht?

23
spender

Gemäß der Datei ntstatus.h ist 0x4000001f (STATUS_WX86_BREAKPOINT) ein Ausnahmestatuscode, der vom Win32 x86-Emulationssubsystem verwendet wird. Es bedeutet (ich vermute), dass Sie einen Haltepunkt erreicht haben, der nicht ausnutzbar ist. Sie sollten das Debuggen von nicht verwaltetem Code aktivieren.

31
Vladimir

Bei der Verwendung von Visual Studio 2012 (Version 11.0.50727.1 RTMREL) fand ich als einzige Lösung Projekt -> Eigenschaften -> Debuggen und Deaktivieren der Option "Aktivieren des Visual Studio-Hosting-Prozesses".

Die Option "Nativen Code-Debugging aktivieren" hat nicht geholfen, obwohl alle Ausnahmen auf "break-when-throw" gesetzt waren.

Interessanterweise trat dieses Problem erst auf, als ich von der VS2012-Beta auf die offizielle Version von VS2012 umstieg. 

13
Ron

Ich habe die gleiche Situation mit Visual Studio 2013. Wie Ron This Save My day: Projekt -> Eigenschaften -> Debuggen und "Aktivieren des Visual Studio-Hosting-Prozesses" deaktivieren.

Vielen Dank

6
PachecoDt

Ein Neustart hat das Problem für mich behoben. 

Ich bin auf das Problem gestoßen, als ich über NUnit mit dem Testrunner von Resharper debuggen wollte und separat versuchte, einen W3WP.exe-Prozess zu durchlaufen.

1
Peter Seale

Ich habe das gleiche Verhalten mit FonstSize = "auto" erhalten (nicht sicher warum):

<TextBlock Text="{Binding DisplayText}" FontSize="auto"/>

Fix: <TextBlock Text="{Binding DisplayText}" />

Zusätzliche Fehlerausgabe:

LS stop assert - tserrInternalError, Datei F:\dd\wpf\src\native\ums\shared\inci\tsoverflow.h, Zeile 66 

Eine unbehandelte Ausnahme des Typs 'System.Exception' ist in PresentationCore.dll Aufgetreten. Zusätzliche Informationen: Vom Textformatierungsmodul kann der folgende Folger nicht eingegeben werden: "LsInternalError".

0
FrankM

Ich hatte das gleiche Problem. In meinem Fall stellte ich fest, dass ich eine Immobilie mit Getter und Setter hatte. Mein Fehler war, die Eigenschaft selbst zurückzugeben, anstatt das zugeordnete Attribut, und dies zwang den Debugger dazu, zu einer Endlosschleife zu wechseln, nachdem das Problem behoben wurde. Ich erhielt den gleichen Fehlercode ohne zusätzliche Informationen. 

0
Siamak Rahimi