Make CON debugging possible with GDB
Using GDB (or any other debug tool that enables the user to call internal functions or expressions), the user can set and unset breakpoints in CON files by calling these exposed functions (VM_CONSetDebugLine or VM_CONUnsetDebugLine - the arguments are the Line number and the File name) while also enabling him to execute commands in a sort of separate instance of the VM (so any mistake here won't crash the application) by using VM_DebugSandBox (the instructions must've been already compile).
Of course, this feature only works in DEBUG builds, but no performance hits have been noticed.
An implementation of a tool using GDB and this build can be found here: https://github.com/MarcosPCB/CONDebugger
Commits summary: -At DEBUG builds, keywords hash table won't be freed -Added VM_DebugSandBox to execute CON commands in a separate instance of the VM (GDB) -Added VM_CONCheckDebugLine to check if line at file is debuggble (GDB) -Added VM_CONSetDebugLine to set a breapoint at a certain file (GDB) -Added VM_CONUnsetDebugLine to remove a breakpoint from a file (GDB) -Added breakpoint check at eval() macro (DEBUG builds only) -Added check for vm_sandbox boolean varaible at dispatch() macro (DEBUG builds only) -At vmErrorCase in VM_Execute(), check if it's in a sandbox enviroment before crashing the game