# OpenEuphoria Manual

## Euphoria v4.1

routine or constant name search

| Up |  |  | TOC | Index
<< 7 Included Tools | < 8.54 Unit Testing Framework | Up: 8 API Reference | 8.56 Windows Message Box > | 9 Release Notes >>

## 8.55 Debugging tools

### 8.55.1 Call Stack Constants

#### 8.55.1.1 CS_ROUTINE_NAME

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_ROUTINE_NAME

CS_ROUTINE_NAME: index of the routine name in the sequence returned by call_stack

#### 8.55.1.2 CS_FILE_NAME

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_FILE_NAME

CS_FILE_NAME: index of the file name in the sequence returned by call_stack

#### 8.55.1.3 CS_LINE_NO

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_LINE_NO

CS_LINE_NO: index of the line number in the sequence returned by call_stack

#### 8.55.1.4 CS_ROUTINE_SYM

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_ROUTINE_SYM

CS_ROUTINE_SYM: (debugger only) Pointer to the routine symbol

#### 8.55.1.5 CS_PC

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_PC

CS_PC: (debugger only) The program counter pointer for this routine

#### 8.55.1.6 CS_GLINE

    include euphoria/debug/debug.e
    namespace debug
    public enum CS_GLINE

CS_GLINE: (debugger only) The index into the global line array

### 8.55.2 DEBUG_ROUTINE Enum Type

These constants are used to register euphoria routines that handle various debugger tasks, displaying information or waiting for user input.

#### 8.55.2.1 type

    include euphoria/debug/debug.e
    namespace debug
    public enum type DEBUG_ROUTINE

SHOW_DEBUG a procedure that takes an integer parameter that represents the current line in the global line table

DISPLAY_VAR A procedure that takes a pointer to the variable in the symbol table, and a flag to indicate whether the user requested this variable or not. Euphoria generally calls this when a variable is assigned to.

UPDATE_GLOBALS A procedure called when the debug screen should update the display of any non-private variables

#### 8.55.2.2 BadSig:

    include euphoria/debug/debug.e
    namespace debug
    DEBUG_SCREEN

#### 8.55.2.3 BadSig:

    include euphoria/debug/debug.e
    namespace debug
    ERASE_PRIVATES

#### 8.55.2.4 BadSig:

    include euphoria/debug/debug.e
    namespace debug
    ERASE_SYMBOL

### 8.55.3 Debugging Routines

#### 8.55.3.1 call_stack

    include euphoria/debug/debug.e
    namespace debug
    public function call_stack()

Returns information about the call stack of the code currently running.

##### Returns:

A sequence where each element represents one level in the call stack. See the Call Stack Constants for constants that can be used to access the call stack information.

1. routine name
2. file name
3. line number

#### 8.55.3.2 M_INIT_DEBUGGER

    include euphoria/debug/debug.e
    namespace debug
    public constant M_INIT_DEBUGGER

#### 8.55.3.3 initialize_debugger

    include euphoria/debug/debug.e
    namespace debug
    public procedure initialize_debugger(atom init_ptr)

Initializes an external debugger. It can also be called from a debugger compiled into a DLL / SO.

##### Parameters:

1. `init_ptr` : The result of `machine_func( M_INIT_DEBUGGER, {} )`.

#### 8.55.3.4 set_debug_rid

    include euphoria/debug/debug.e
    namespace debug
    public procedure set_debug_rid(DEBUG_ROUTINE rtn, integer rid)

#### 8.55.3.5 read_object

    include euphoria/debug/debug.e
    namespace debug
    public function read_object(atom sym)

#### 8.55.3.6 trace_off

    include euphoria/debug/debug.e
    namespace debug
    public procedure trace_off()

#### 8.55.3.7 disable_trace

    include euphoria/debug/debug.e
    namespace debug
    public procedure disable_trace()

#### 8.55.3.8 step_over

    include euphoria/debug/debug.e
    namespace debug
    public procedure step_over()

#### 8.55.3.9 abort_program

    include euphoria/debug/debug.e
    namespace debug
    public procedure abort_program()

#### 8.55.3.10 get_current_line

    include euphoria/debug/debug.e
    namespace debug
    public function get_current_line()

#### 8.55.3.11 symbol_lookup

    include euphoria/debug/debug.e
    namespace debug
    public function symbol_lookup(sequence name, integer line = get_current_line(),
            atom pc = get_pc())

#### 8.55.3.12 get_pc

    include euphoria/debug/debug.e
    namespace debug
    public function get_pc()

#### 8.55.3.13 is_novalue

    include euphoria/debug/debug.e
    namespace debug
    public function is_novalue(atom sym_ptr)

#### 8.55.3.14 debugger_call_stack

    include euphoria/debug/debug.e
    namespace debug
    public function debugger_call_stack()

#### 8.55.3.15 break_routine

    include euphoria/debug/debug.e
    namespace debug
    public function break_routine(atom routine_sym, integer enable)

#### 8.55.3.16 get_name

    include euphoria/debug/debug.e
    namespace debug
    public function get_name(atom sym)

#### 8.55.3.17 get_source

    include euphoria/debug/debug.e
    namespace debug
    public function get_source(integer line)

#### 8.55.3.18 get_file_no

    include euphoria/debug/debug.e
    namespace debug
    public function get_file_no(integer line)

#### 8.55.3.19 get_file_name

    include euphoria/debug/debug.e
    namespace debug
    public function get_file_name(integer file_no)

#### 8.55.3.20 get_file_line

    include euphoria/debug/debug.e
    namespace debug
    public function get_file_line(integer line)

#### 8.55.3.21 get_next

    include euphoria/debug/debug.e
    namespace debug
    public function get_next(atom sym)

#### 8.55.3.22 is_variable

    include euphoria/debug/debug.e
    namespace debug
    public function is_variable(atom sym_ptr)

#### 8.55.3.23 get_parameter_syms

    include euphoria/debug/debug.e
    namespace debug
    public function get_parameter_syms(atom rtn_sym)

#### 8.55.3.24 get_symbol_table

    include euphoria/debug/debug.e
    namespace debug
    public function get_symbol_table()

| Up |  |  | TOC | Index
<< 7 Included Tools | < 8.54 Unit Testing Framework | Up: 8 API Reference | 8.56 Windows Message Box > | 9 Release Notes >>