Freigeben über


Wie kann festgestellt werden, bei welchem Aufruf ein Fehler aufgetreten ist, wenn eine Funktion sehr häufig aufgerufen wird?

Problembeschreibung

Das Programm schlägt bei einem Aufruf einer bestimmten Funktion mit dem Namen CnvtV fehl.Zuvor hat das Programm die Funktion jedoch mehrere Hundert Male aufgerufen.Wenn ein Positionshaltepunkt für CnvtV festgelegt wird, hält das Programm bei jedem Aufruf der Funktion an, was nicht beabsichtigt ist.Da nicht bekannt ist, welche Bedingungen den fehlschlagenden Aufruf verursachen, kann kein bedingter Haltepunkt festgelegt werden.Welche Möglichkeiten gibt es?

Lösung

Mithilfe des Felds Trefferanzahl können Sie den Haltepunkt für die Funktion auf einen hohen Wert festlegen, der niemals erreicht wird.Da Sie davon ausgehen, dass die CnvtV-Funktion einige Hundert Male aufgerufen wird, könnten Sie Trefferanzahl auf einen Wert von mindestens 1000 festlegen.Führen Sie dann das Programm aus, und warten Sie, bis der Aufruf fehlschlägt.Sobald dies der Fall ist, öffnen Sie das Fenster "Haltepunkte" und überprüfen die Haltepunktliste.Der für CnvtV festgelegte Haltepunkt wird, gefolgt von der Trefferanzahl und der Anzahl der noch verbleibenden Iterationen, angezeigt:

CnvtV(int) (no condition) when hit count is equal to 1000 (currently 101)

Jetzt wissen Sie, dass die Funktion bei Aufruf Nr. 101 fehlgeschlagen ist.Wenn Sie nun den Haltepunkt auf eine Trefferanzahl von 101 zurücksetzen und das Programm erneut ausführen, hält es an dem CnvtV-Aufruf an, der zuvor den Fehler verursacht hat.

Siehe auch

Konzepte

FAQs zum Debuggen von systemeigenem Code

Weitere Ressourcen

Setting Breakpoints

Debuggen von systemeigenem Code