Cxbx-Reloaded/src/CxbxDebugger
2022-01-19 15:59:17 -06:00
..
Debugger Fix crash unwinding callstack with addresses outside of IntPtr range 2020-10-11 22:11:18 +01:00
DebuggerExtras Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
DebuggerSymbols Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
Properties Added icon resources 2018-02-03 16:14:32 +00:00
Resources Added icon resources 2018-02-03 16:14:32 +00:00
Win32 Update http documentation links to https and fix (some) dead ones 2019-05-12 02:36:50 -07:00
App.config Upgrade CxbxDebugger to .NET Framework 4.8 2022-01-19 15:59:17 -06:00
CMakeLists.txt Upgrade CxbxDebugger to .NET Framework 4.8 2022-01-19 15:59:17 -06:00
Common.cs Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
CxbxDebuggerInstance.cs Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
CxbxDebuggerInstance.Designer.cs Adjust default window size as per feedback 2020-10-12 19:48:21 +01:00
CxbxDebuggerInstance.resx Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
CxbxDebuggerMain.cs Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
CxbxDebuggerMain.Designer.cs Adjust default window size as per feedback 2020-10-12 19:48:21 +01:00
CxbxDebuggerMain.resx Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
DebugOutputManager.cs Minor encapsulation 2018-02-04 23:02:46 +00:00
FileEventManager.cs Minor encapsulation 2018-02-04 23:02:46 +00:00
FileWatchManager.cs Minor encapsulation 2018-02-04 23:02:46 +00:00
IDebugWindow.cs Various UI improvements after move to MDI 2020-10-11 22:19:49 +01:00
PatchManager.cs Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
Program.cs Support for different debug sessions using MDI child forms 2020-10-11 12:16:22 +01:00
README.md Updated debugger goals 2018-04-19 00:45:49 +01:00
RicherTextBox.cs Support for scoped text box updates 2018-02-13 20:16:19 +00:00
ThreadHelpers.cs Add new error code definition 2020-10-11 12:17:22 +01:00

CxbxDebugger

CxbxDebugger is an experimental tool to aid debugging Xbox executables from within Cxbx.

Cxbx-Debugger screenshot at breakpoint

Cxbx-Debugger screenshot at memory editor

The goal is to resolve XBE symbols using the function signatures identified by Cxbx-Reloaded.

This is a workaround for patching or creating PDB files at runtime for Cxbx-Reloaded (where the memory region is pre-allocated - see virtual_memory_placeholder). However, in future it may be viable to supporting loading symbols from matching PDB files.

Methods

The debugger is a standalone C# application which wraps the child instance of Cxbx-Reloaded used to launch the XBE file.

It uses the debugger API provided by Windows, primarily WaitForDebugEvent and ContinueDebugEvent. The C# implementation is taken from the VsChromium project.

Roadmap

Primary

  • Create wrapper for the Cxbx-Reloaded child process
  • Support new threads
  • Support displaying of interrupts and exceptions
  • Support resolving relevant XBE symbols from a callstack

Secondary

  • Suspending threads and checking memory
  • Breakpoints - inserting and handling interrupts

Thanks