Frage

Ich erhalte zufällige Abstürze von meinem c # app (Windows 7 / VS2008), und es gibt mir nicht einen üblichen Stack-Trace, sondern schlägt vor / debug / zu schließen Infofenster 7 Art von Dialogfeld finden. Ich bin mit der App entweder unter VS2008 oder Stand Alone - Gleiche. Durch Klicken auf „Debug“, schlägt zu debuggen mit einer neuen Instanz des VS, die „bereits an die App angebracht ist ein anderer Debugger“, wie er ausfällt. Aber der beigefügte Debugger gibt mir keine Chance zu sehen, wo es fehlschlägt, gibt nur einige Hinweise im Ausgabefenster (unten). Wie damit umgehen?

Es sieht aus wie wir aktivieren müssen (?) Erste Chance Ausnahmen in den VS-Debugger, aber es war unklar, wie .. ich jede Hilfe bei diesem schätzen!

Addition - ich fand, wie das Debuggen die Ausnahmen in VS2008 ermöglichen (Debug-> Exceptions-> überprüft alle fünf Kategorien von Ausnahmen). Und es gibt mir immer noch genau das gleiche Ergebnis - Absturz ohne Fähigkeit zu sehen, was in Debugger ist los

.

'ps.exe' (verwaltet): Geladen 'C: \ Windows \ assembly \ GAC_MSIL \ System.Deployment \ 2.0.0.0__b03f5f7f11d50a3a \ System.Deployment.dll' Eine erste Chance Ausnahme des Typs 'System.Deployment.Application.InvalidDeploymentException' in System.Deployment.dll A aufgetreten erste Chance Ausnahme des Typs 'System.Threading.ThreadAbortException' trat bei mscorlib.dll Der Faden 0x1964 hat mit dem Code 0 (0x0) verlassen. Der Thread mit Code 0x1b24 ausgetreten ist, 0 (0x0). Eine erste Chance Ausnahme von Art 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.Threading.ThreadAbortException' trat bei mscorlib.dll Der Faden 0x19b8 hat mit dem Code 0 (0x0) verlassen. Der Thread mit Code 0x18f4 ausgetreten ist, 0 (0x0). Der Faden wird beendet 0x420 mit dem Code 0 (0x0). Eine erste Chance Ausnahme vom Typ 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' ist in mscorlib.dll aufgetretenEin erster Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' in mscorlib.dll A zuerst aufgetreten Chance Ausnahme des Typs 'System.ArgumentOutOfRangeException' ist in mscorlib.dll aufgetreten Das Programm '[6084] ps.exe: Managed' wird beendet mit Code -1073740940 (0xc0000374).

War es hilfreich?

Lösung

Es ist sorta wie bei einem Formel-1-Rennen eine jener massiven Anhäufungen erleben. Das letzte Stück Schrapnell, die zu einem Rest kam berichtet:

// MessageText:
//
// A heap has been corrupted.
//
#define STATUS_HEAP_CORRUPTION           ((NTSTATUS)0xC0000374L)

Ja, das ist ein sehr ernster Reifen Blow-out. Viele Dinge schief gehen, wenn ein Haufen beschädigt wird. Sie haben wahrscheinlich einige nicht verwalteten Code bekommen, das in eine Art und Weise ist misbehaving die so typisch für nicht verwalteten Code ist, um die Integrität des Haufens mit einem schlechten Zeiger schreiben zu zerstören. Sehr schwer zu diagnostizieren, zu isolieren, dass Code.

Andere Tipps

go

In VS, auf Debug / Ausnahmen, und aktivieren Sie das Kontrollkästchen unter 'Geworfene' für 'Common Language Runtime Ausnahmen'. Dies wird die ‚erste Chance Ausnahme‘ fängt.

Eine Bereitstellung Ausnahme scheint verwandt zu sein einmal zu klicken. Sind Sie mit ihr?

Erstellen Sie eine Ausgabeprotokolldatei oder Verwendung Meldungsfelder es aufzuspüren, wenn das Entwicklungswerkzeug Sie nicht.

Presse Ctrl + Alt + E in Visual Studio oder Wählen Sie Debug> Ausnahmen aus dem Menü und dann CLR Ausnahmen klicken, um alle erste Chance Ausnahmen zu fangen. Das sollte dann hoffentlich bricht an dem Punkt des Anstoßes.

Ansonsten versuchen Schreib Debug.Write und Trace.Write Aussagen an kritischen Stellen im Code, um zu sehen, was Punkt, den Sie erreichen, bevor der Fehler auftritt. Sowohl Debug und schreiben können in System.Diagnostics Namensraum gefunden werden.

IMO die beste Debug Heap Verfälschungen verwendet Windbg. Hier ist ein Blog post von Tess auf Debuggen von verwalteten Heap Korruption.

HTH

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