Fixed issue in processor.cc which prevented resuming from a breakpoint
BPs would set 2 bytes of the x64 JIT opcode to an invalid opcode & then catch
the exception from it - BP handler then restored the original opcode, but
then advanced RIP by 2 bytes into that opcode for some reason?
It would also suspend the thread just prior to this RIP change,
causing some strange effects... moving suspend after it (and removing the
offset) appears to work fine, though I didn't test the imgui debugger yet
To use GDBStub run xenia with "--debug --gdbport 12345" args
Tested with IDA 9 + idaxex loader, BPs can be set and resumed fine, suspend
& resume also works - memory/registers are viewable but can't be changed yet
The socket code here is very basic and only allows a single connection for
the session, if you disconnect you'll need to restart emulator
remove xe_kernel_export_shim_fn field of Export function_data, trampoline is now the only way exports get invoked
Remove kernelstate argument from string functions in order to conform to the trampoline signature (the argument was unused anyway)
Constant-evaluated initialization of ppc_opcode_disasm_table, removal of unused std::vector fields
Constant-evaluated initialization of export tables
name field on export is just a const char* now, only immutable static strings are ever passed to it
Remove unused callcount field of export.
PM4 compare op function extracted
Globally apply /Oy, /GS-, /Gw on msvc windows
Remove imgui testwindow code call, it took up like 300 kb
The stdlib is explictly set to stdlibc++, so linking also to libc++ is
useless except for adding unneeded dependencies.
Signed-off-by: sephiroth99 <sephiroth99@gmail.com>
Mark C4839 and C4840 as severe warnings:
- C4839: non-standard use of class 'type' as an argument to a variadic function
- C4840: non-portable use of class 'type' as an argument to a variadic function
C++17ification!
- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.