2

Ich verwende Visual C++ 2003, um ein Programm remote über TCP/IP zu debuggen.Ich kann meinen Debugger nicht aufbrechen brechen auf Ausnahmen der ersten Chance

Ich hatte die Win32-Ausnahme c00000005, "Zugriffsverletzung", in den Debugger zu brechen, wenn geworfen. Dann setze ich es zurück auf "Übergeordnete Einstellung verwenden". Die Einstellung für das übergeordnete Objekt, Win32-Ausnahmen, soll fortgesetzt werden, wenn die Ausnahme ausgelöst wird.

Jetzt, wenn ich das Programm debuggen, bricht es jedes Mal, wenn die Ausnahme ausgelöst wird, zwingt mich, auf Weiter zu klicken, um es Debuggen zu lassen. Wie bekomme ich es so zu brechen?

Antwort

4

Ich mag Will Dean's answer

eine Zugriffsverletzung klingt wie ein tatsächlicher Fehler im Code unterstützen. Es ist nicht etwas, was ich erwarten würde, dass die zugrundeliegende C/++ Runtime intern wirft und fängt.

Die 'First-chance-Ausnahmen' Funktion ist so, dass Sie Dinge abfangen können, die mit dem Debugger im Code "gefangen" werden, und schauen Sie es sich an. Wenn es nichts gibt, was diese Ausnahme "fängt" (was macht Sinn, warum um alles in der Welt würden Sie Zugriffsverletzungen erfassen und ignorieren?), Dann löst es den Debugger aus, unabhängig davon, welche Optionen Sie möglicherweise gesetzt haben.

+0

zu schlecht scheint dies der Fall zu sein. Beim Anhängen an Prozesse von Drittanbietern (wie Skype) haben sie manchmal Threads, die scheinbar mit nicht abgefangenen Ausnahmen sterben, und Sie können sie nicht * nicht * fangen. Nervig! – rogerdpack

0

Ctrl +Alt + E (oder Debug \ Ausnahmen)

Von dort aus können Sie wählen, welche Ausnahmen brechen.

5

Ist dies eine Ausnahme, die Ihr Code tatsächlich behandeln würde, wenn Sie nicht im Debugger ausgeführt würden?

Verwandte Themen