gawk: Limitations

1 
1 14.5 Limitations
1 ================
1 
1 We hope you find the 'gawk' debugger useful and enjoyable to work with,
1 but as with any program, especially in its early releases, it still has
1 some limitations.  A few that it's worth being aware of are:
1 
1    * At this point, the debugger does not give a detailed explanation of
1      what you did wrong when you type in something it doesn't like.
1      Rather, it just responds 'syntax error'.  When you do figure out
1      what your mistake was, though, you'll feel like a real guru.
1 
11    * If you perused the dump of opcodes in ⇒Miscellaneous Debugger
      Commands (or if you are already familiar with 'gawk' internals),
1      you will realize that much of the internal manipulation of data in
1      'gawk', as in many interpreters, is done on a stack.  'Op_push',
1      'Op_pop', and the like are the "bread and butter" of most 'gawk'
1      code.
1 
1      Unfortunately, as of now, the 'gawk' debugger does not allow you to
1      examine the stack's contents.  That is, the intermediate results of
1      expression evaluation are on the stack, but cannot be printed.
1      Rather, only variables that are defined in the program can be
1      printed.  Of course, a workaround for this is to use more explicit
1      variables at the debugging stage and then change back to obscure,
1      perhaps more optimal code later.
1 
1    * There is no way to look "inside" the process of compiling regular
1      expressions to see if you got it right.  As an 'awk' programmer,
1      you are expected to know the meaning of '/[^[:alnum:][:blank:]]/'.
1 
1    * The 'gawk' debugger is designed to be used by running a program
1      (with all its parameters) on the command line, as described in
1      ⇒Debugger Invocation.  There is no way (as of now) to attach
1      or "break into" a running program.  This seems reasonable for a
1      language that is used mainly for quickly executing, short programs.
1 
1    * The 'gawk' debugger only accepts source code supplied with the '-f'
1      option.
1