Initializing help system before first use

Debugger interface

The debugger can be started even if the flag '-G' has not been used for compilation but in this case most commands will fail to return useful information. To run a debugging session the runmode of the model must be set to '1' before starting its execution. If the model was compiled with '-G', the execution is immediately suspended before the first statement of the model and a notification event is sent.

During a debugging session changes of the model execution status are notified by specific events of class 'EVENT_DBG' (32770). The value of these events is a 32bit integer (cast to a real): the first 16 bits are a parameter (meaning depending on the reason) and the following 16 bits indicate the reason for the notification:

  • DBG_NOTIF_START (1<<16): Submodel starting (the parameter is the submodel ID)
  • DBG_NOTIF_END (2<<16): Submodel ending (the parameter is the submodel ID)
  • DBG_NOTIF_STOP (3<<16): Execution suspended (the parameter is the VM status)

When an event 'DBG_NOTIF_STOP' is received, the model (and its submodels) is in suspended state and can be sent commands (see Section mcmd pseudo file). To continue execution a control parameter 'dbgctrl' has to be set. The possible values are (the operation applies to the master model unless a submodel number 'num' is given):

  • C: continue
  • E: end of execution, abort debugging session
  • N [num]: continue to next statement
  • S [num]: step into subroutine
  • F [num]: continue up to end of subroutine
  • T num lndx: continue up to the specified line number on submodel 'num' (0 for master model)

Additionally, during the execution of a model running in debugging mode (but that is not suspended), the following 'dbgctrl' commands can be used:

  • B: suspend execution (e.g. consequence of ctrl-C)
  • E: end of execution, abort debugging session

When the execution of the model is about to end (including after an error), it is suspended just before exiting such that the user can look at the current status.


© 2001-2021 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.