---
name: "beh_debug"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/beh_debug"
---

# beh\_debug(3)

BEH structures displayer-debugger

## NAME

**beh\_debug** - BEH structures displayer-debugger

## SYNOPSYS

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

## PARAMETERS

- *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"

## DESCRIPTION

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.

## EXAMPLE

```
#include <beh109.h>
struct beout *beout_pnt;
beh_debug (beout_pnt , "beout");
```

## NOTES

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

## SEE ALSO

[beh(3)](/beh/3.md)
