Provided by: alliance_5.0-20110203-4_amd64 bug


       beh_debug - BEH structures displayer-debugger


       void beh_debug (pnt, type)
       void *pnt;
       char *type;


       pnt       pointer of the structure to be displayed

       type      name  of  the  structure  to  be displayed. type can be any of "befig", "beout",
                 "bereg", "bemsg", "bepor", "begen", "berin", "bebus", "beaux", "bebux", "biabl",
                 "binode",  "beder",  "bequad",  "abl",  "integer", "long", "short", "character",
                 "ptype", "chain"


       When called, beh_debug() displaies the structure pointed by pnt then, prints the line:

              COMMAND   >>

       and waits for a command being entered by the user. If  pnt  is  a  NULL  pointer  or  type
       doesn´t represent a known structure, beh_debug() exits without making any action.

       To display the structure, beh_debug() prints a line per field. Fields containing immediate
       value (integer, character, string, ...) are displayed in the following form:

              name_of_the_field  :  value_of_the_field

       Fields containing a pointer are marked by the symbol ->. If  the  field  contains  a  NULL
       pointer, the field is displayed as:

              -> name_of_the_field  :

       In the other case, beh_debug() prints :

              -> name_of_the_field  :  available

       Two kinds of command are accepted by the displayer.

       A command can be the name of a field containing a pointer. The command is accepted only if
       the pointer is not a NULL pointer (field displayed  as  "available").  When  the  debugger
       receives  such  a  command,  it  first  pushes  the  current  structure on its stack then,
       displaies the structure pointed by the named field.

       The second kind of commands are predefined commands :

              _exit     to exit from the debugger

              _up       to return to the previous structure

              _stop     to put a stop mark on the current structure

              _top      to return to the first structure (pointed by pnt)

              _back     to return to the last structure marked with a stop mark

              _save     to save the current structure in a static table. At  most  10  structures
                        may  be  saved.  (example  : "_save 1" saves the current structure in the
                        entry number ! of the table)

              _jump     to jump to a saved structure (example : "_jump 1" dislpaies the etructure
                        save in the entry number 1 of the table).

              _display  displaies  a  field  under  a  given  format.  (example  : "_display next
                        integer" displaies the field named next as an integer).

       In addition to these commands, the command . (dot) can be used to repete the last command.


       #include <beh109.h>
       struct beout *beout_pnt;

       beh_debug (beout_pnt , "beout");


       beh_debug() uses an internal stack. The message "stack overflow" is printed  if  too  many
       structures have been pushed on the stack.