* Add STL-standard type traits and functions to TMap to enable for loop iteration
* add third-party range-map library
I have e-mailed the author for clarifcation on the license, will update this when they respond
* vcpkg: Add cppdap and eventpp libraries, update baseline
* DAP implementation
* Add `FileSystem::FileHash()` to get the CRC32 hash
* add `starting_offset` param to `VMDisasm()` for debugger disassembly view
Defaults to `0`, should not change output if it's not set
* Add `VMFrameStack::HasFrames()` to prevent assertions when inspecting in the debugger
* Add `PC` field to VMFrame, ensure that it is updated whenever vm increments/decrements the pc
Does not change alignment, the offsets used in VMFrame still work
We need this for the debugger because we otherwise have no way to get the pc; it was a local in `ExecScriptFunc()`
* `ZCCCompiler::CreateClassTypes()`: ensure SourceLumpName is set for classes derived from non-native classes
* start debug server in d_main, add `vm_debug` cvars and `-debug` CLI arg
* Add documentation for `vm_debug` cvars
* vm_exec: Add debugger hooks for instruction execution events
* c_console: Add debugger hooks for logging events in `PrintString`
* add `.cache/` to gitignore
* vendor cppdap on main @ 6464cd7
Patches:
removed .gitmodules (submodules were thirdparty/json, thirdparty/googletest)
removed thirdparty/googletest, not needed
removed thirdparty/json/docs, thirdparty/json/test, thirdparty/json/benchmarks to prevent massive bloat
* vendor eventpp on master @ 1224dd6
* build: use internal cppdap and eventpp by default
* dap: fix Binary::GetFunctionLineRange()
* fix bug in range_map::find_ranges
* make Binary dap::Source dynamic
* cache source code upon retrieval
* refactor Binary into a class, cleanup PexCache
* fix ending session gracefully
* d_main: Stop debug server in D_Cleanup()
* Fix connecting to debugger when session already started
* cleanup unused stuff in ZScriptDebugger
* always send TerminateEvents on disconnect if initialized
* tweak color display
* Don't cache disassembly lines when scanning scripts
* Cache nodes when getting runtime state
* WIP display locals
* Fix display of static arrays
* Ensure names display in proper order
* dap: Fix struct locals display, add args display
* Support `start` parameter
* Support `filter` parameter
* remove struct unbound native data display
Practically useless for debugging zscript and didn't work properly anyway
* d_main: fix vm_jit and vm_jit not being disabled soon enough
* support breaking on abort exceptions
* dap: refactor game event emitter functions into seperate header
* dap: show native functions on stack
* dap: Remove "Native" from exception handling, simplify exception event emit
* dap: add instruction breakpoints
* dap: fix display of locals not in scope yet
* dap: Make disassembly view display invalid instructions for non-code addresses
* dap: remove dot initializers
* dap: fix local structs in scope
* dap: don't parse the non-used options in the launch/attach requests
* dap: fix local struct view
* dap: Fix displaying objects that aren't their actual types
* dap: Fix action and state handling
* dap: stack display view
* dap: fix object display view
* d_dehacked: set qualified name in addition to the printable name
* dap: fix displaying breakpoint errors when script isn't loaded
* dap: remove debug print
* dap: Display parameter names
* dap: Turn down verbosity of logging
* dap: fix disassembly view
* dap: fix performance problems with arrays
* c_console: emit event only if not PRINT_NODAPEVENT
* dap: improve logging
* dap: update upstream cppdap library to fix deadlocks on no bind
* dap: Fix ending session on client socket closed
* dap: prevent DebugServer.h from pulling in `dap` and `ZScriptDebugger.h`
* dap: fix pause event not being emitted on pause
* dap: remove eventpp emitters, way too slow
* Remove eventpp dependency
* dap: Display correct register names
* dap: Show special inits in registers
* dap: Add stack offset to VMLocalVariable
* dap: fix display of static arrays and local variables on stack vs. registers
* dap: fix displaying function pointers
* dap: tweak color display
* dap: fix scalar display < 4
* dap: add Globals display to debugger
* dap: unify methods to get vmvalue
* dap: rename free method to freeValue to avoid running afoul of macro defs
* fix windows builds
* fix compile on linux
* cleanup
* Fix display of function breakpoints
* dap: Don't send back binary files
* dap: include sbarinfo in script types (no debug support for anything but zscript yet, this is just for returning source info)
* dap: don't show ending session message unless initialized
* fix erroneous commit
* dap: handle evaluate requests
* Fix getting bitfield values
* Add CVars Scope and evaluation
* add running console commands from repl
* dap: disable commands via repl for now
* fix loading functions DECORATE scripts
* Add source information to Dehacked VM functions, add debugging support
* dap: cleanup
* fix resolving archive paths
* don't send source back on native stack frames
* handle `modules` request
* cleanup
* allow evaluating cvars on hover
* fix oob bpinfos
* fix restarting the game blowing out the debug server
* dap: process input events while paused to prevent deadlocks
* fix getting local state
* dap: fix LocalState alignment
* dap: fix DumpStateHelper
* update cppdap protocol version to 1.68.0
* remove cppdap from vcpkg deps
We can't use the upstream version anyway because the maintainers are not merging our patches
* dap: make named variable nodes derive from the same class
* dap: make cvar scope available in native stack frames
* handle local variables with conflicting names
* add I_GetWindowEvent() to win32 to only process window events when debugging is paused
* dap: fix evaluate
* dap: fix display of `out` variables
the statically provided library did not provide any advantage over it whatsoever and even libjpeg-turbo's better performance cannot really play out here so ease of use and getting rid of a dependency wins.