Abschalten von Debug-Funktionen

CONZEPT 16-Prozeduren laufen standardmäßig mit Debugger-Unterstützung. Dabei wird im Hintergrund ein Protokoll für die Funktionsaufrufe angelegt. Dieser Debug-Modus wird eigentlich nur für die Entwicklung benötigt, daher gibt es die Möglichkeit, den Debug-Modus auszuschalten.


Mit Hilfe des Funktionsaufrufs DbgControl(_DbgOff) lässt sich der Debug-Modus ausschalten. Dies führt mit sich, dass alle Debugger-Befehle außer DbgControl(_DbgCallstackOn), DbgControl(_DbgCallstackOff) und DbgDump() ignoriert werden.

Darüber hinaus wird beim Ausschalten des Debug-Modus die Statusprotokollierung bei Funktionsaufrufen ausgeschaltet. Das heißt es werden weder externe noch interne Funktionsein- und austritte protokolliert. Das zieht zum Einen mit sich, dass die Geschwindigkeit der Applikation erhöht wird, was das Laufzeitverhalten verbessert. Zum Anderen lassen sich dann die Prozedurinformationen aus den Systemeigenschaften spProcCurrent, spProcCurrentSub, spProcCurrentFull nicht mehr auslesen, jedoch kann man für dieselben Informationen die vordefinierten Makros verwenden.

Der Hauptvorteil dieser Option besteht darin, dass man sich 100%-ig sicher sein kann, dass Debug-Befehle nicht mehr ausgeführt werden. Es kann immer wieder mal passieren, dass man im Prozedurcode die ein oder andere Debug-Funktion vergisst, im schlimmsten Fall ein DbgStop(). Daher empfehlen wir für Applikationen, die für den Endanwender gedacht sind, diese Option zu setzen.

2 Antworten

  1. Um den Fehlerkontext innerhalb der mit ErrCall() definierten Funktion festzustellen, sind andere Eigenschaften des System-Objektes zu verwenden:

    spErrCode – Fehlercode des Laufzeitfehlers
    spErrText – Text der Fehlermeldung
    spErrProc – Prozedurfunktion, in der der Fehler aufgetreten ist
    spErrLine – Programmzeile, in der der Fehler aufgetreten ist
    spErrSource – Name der Include-Prozedur

    Details finden Sie auch unter http://blog.conzept16.de/2012/03/Laufzeitfehler-finden.

    Diese Eigenschaften werden durch DbgControl(_DbgOff) nicht beeinflusst.

  2. das hat aber den schweren Nachteil, das man bei auftretenden Laufzeitfehlern in einer per ErrCall() definierten
    Prozedur keine Informationen mehr über die Stelle, an der der Fehler aufgetreten ist, auslesen und weitermelden kann.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Get your Trial Version now!

Test yeet free of charge

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner