Fenix console
The Fenix console is a handy debugging tool. Many commands can be entered in it, like process manipulation or variable manipulation. The current state of Globals, Constants, Locals, Publics, Privates can also be monitored. One can add text to it in the programcode by using the function say().
In the later Fenix versions (from which version exactly?) the Fenix console freezes the program when activated, until it is deactivated again.
To use the debugger, run in debug mode by compiling your program in FXC.exe with the argument "-g", and then activate it in-program with ALT+C.
Commands
Process Info
INSTANCES
List all running processes in a tree view. It shows what processes a processes called.
GLOBALS
List all global variables with their current values. Both predefined and user defined variables are listed.
LOCALS <processName|processID>
List all local variables of the specified process. The process can be specified by either its name or its processID. Both predefined and user defined variables are listed.
PRIVATES <processName|processID>
List all local variables of the specified process. The process can be specified by either its name or its processID.
PUBLICS <processName|processID>
List all local variables of the specified process. The process can be specified by either its name or its processID.
Debugging Commands
TRACE
Execute the next instruction.
BREAK
List all set breakpoints.
BREAK <processName|processID>
Add a breakpoint on the execution of the specified process. The process can be specified by either its name or its processID.
DELETE
Delete a breakpoint on the execution of the specified process. The process can be specified by either its name or its processID.
CONTINUE
Continue the execution (close the console).
DOFRAME
Execute the next frame.
Misc
SHOW <expression>
Evaluate and show the specified expression.
STRINGS
List all strings in memory and how many times they are used.
VARS
List all internal variables.
QUIT
Kill the program and exit.
Process Management
See signals for further explanation about the following signaling commands.
RUN <processName> [<argument>]
Start a process with optional arguments.
KILL <processName|processID>
Kill the specified process. The process can be specified by either its name or its processID.
WAKEUP <processName|processID>
Wake up the specified process. The process can be specified by either its name or its processID.
SLEEP <processName|processID>
Put the specified process to sleep. The process can be specified by either its name or its processID.
FREEZE <processName|processID>
Freeze the specified process. The process can be specified by either its name or its processID.
KILLALL <processName|processID>
If a processname is specified, kill all processes with that name; if a processID is specified, only kill that process.
WAKEUPALL <processName|processID>
If a processname is specified, wake up all processes with that name; if a processID is specified, only wake up that process.
SLEEPALL <processName|processID>
If a processname is specified, put all processes with that name to sleep; if a processID is specified, only put that process to sleep.
FREEZEALL <processName|processID>
If a processname is specified, freeze all processes with that name; if a processID is specified, only freeze that process.
Expressions
You can evaluate free expressions and see/alter the values of variables.
<variable> [= <value>]
Return or alter a global variable.
<processName|processID>.<variable> [= <value>]
If a processID is specified, the value of the local, private or public variable of that process is returned or altered. If a processName is specified, the process with that name and the lowest ID is assumed.
Example
Process Main() Begin Repeat frame; Until(key(_ESC)) End
|
Debugging | |
Debugging • Fenix console • Fenix profiler |