2016-11-10 4 views
0

Ich bin vor vielen Problem zum Absturz Absturz auf Produktionsserver exe jedoch mag ich Datei, wenn exe Absturz mit Detailprotokoll entleeren.Wie manuell Code C#

Ich habe procdump Werkzeug gefunden. Können Sie Code C# vorschlagen, der exe manuell abstürzt, also prüfen kann, welche Art von Informationen in dump log erhalten.

+4

'werfen neue Exception();' <= und dann nicht die Ausnahme überall im Call-Stack zu fangen. – Igor

+0

Ausnahme auslösen? Laden Sie eine andere Plattform-Baugruppe (x86/x64) –

+0

Welche Art von Absturz suchen Sie? – Luaan

Antwort

5

Ein Absturz wird durch eine Ausnahme verursacht, die nicht abgefangen wird. Werfen Sie einfach einen in Ihren Code

throw new Exception(); 

und fügen Sie keinen try-catch-Block irgendwo hinzu.

1

Die beste, die gefangen werden kann, ist eine Stapelüberlaufausnahme zu schaffen. Dieser wird fallen durch den Versuch/Fänge ...

+1

Wenn in __Release__ Konfiguration gebaut (Optimierungen aktiviert ist), sollte dies nicht zum Absturz bringen (wegen [tail-Call-Optimierungen] (https://en.wikipedia.org/wiki/Tail- call_optimization)). –

+1

können Sie dies begründen? –

+0

Wenn diese Option erstellt wird, wird die Laufzeit die Dinge optimieren, indem für jede Rekursion kein neuer "Frame" auf dem Aufruf-Stack erstellt wird. Dies wird dann ähnlich wie hier: goto here; oder while (true) {} 'keiner von beiden wird die Anwendung zum Absturz bringen. Es ist einfach zu verifizieren, indem Sie Ihren Code in Visual Studio einfügen. Stellen Sie sicher, dass Sie "Release" in der Dropdown-Liste Solution Configurations haben und dann ohne Debugging (Strg + F5) ausgeführt werden. –