BEH_DEBUG(3)                     BHL functions                    BEH_DEBUG(3)

       This software belongs to the  ALLIANCE CAD SYSTEM developed by the ASIM
       team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris,

       Web :
       E-mail :

       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

              _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.


       This tool is under development at the ASIM department of the LIP6
       We need your feedback to improve documentation and tools.

ASIM/LIP6                       October 1, 1997                   BEH_DEBUG(3)