[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
  The Debugger's Command Window

  When using the Clipper debugger, it is often useful to use the command
  window to evaluate expressions. Unfortunately, the expression evaluator in
  the debugger relies on the Clipper macro subsystem to evaluate
  expressions. For this reason, there are serious restrictions on the
  complexity of expressions that can be evaluated. Here are some specific
  restrictions that apply in the debugger's command window, along with
  workarounds for them:

  .  Understandably, preprocessor translation cannot be handled. The
     Class(y) double-colon (::) operator for message sends to self thus
     cannot be used. Instead, when debugging inside a method, the self
     variable should be used directly, as in expressions such as
     ? self:nTop.

  .  Only one message send can be handled in an expression. Expressions of
     the form obj:msg1:msg2 will not evaluate. One workaround for this is
     to use intermediate variables to store results, for example:

      ? tmp := obj:var1
      ? tmp:var2

     This will result in a private variable named tmp being created. The
     names of these intermediate variable should be chosen so as not to
     conflict with variables in the application being debugged.

  .  Complexity of expressions is limited in other ways. For example, the
     expressions of the form obj:arr[n] will not evaluate. Again, the
     workaround for this is to use intermediate variables.

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson