Cxbx-Reloaded/src/CxbxDebugger
x1nixmzeng 875e4fcd2f Updated debugger goals 2018-04-19 00:45:49 +01:00
..
Debugger Added remaining data type reads 2018-04-18 23:53:13 +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 Cleanup of exit codes 2018-02-07 23:04:01 +00:00
App.config Added skeleton processes debugger 2018-01-02 23:21:11 +00:00
Common.cs Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
CxbxDebugger.csproj Cleanup of numerical handling 2018-04-19 00:23:26 +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
Form1.Designer.cs Disable multi-select on data editor 2018-04-19 00:27:11 +01:00
Form1.cs Update status when debugging state changes 2018-04-19 00:33:41 +01:00
Form1.resx Updated to icon resource 2018-04-13 22:35:17 +01:00
PatchManager.cs Cleanup of numerical handling 2018-04-19 00:23:26 +01:00
Program.cs Added skeleton processes debugger 2018-01-02 23:21:11 +00: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 Added back tray notifications 2018-02-13 20:15:01 +00:00

README.md

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