gdb: dynamic rcmd system & more cleanups

This commit is contained in:
GreemDev
2025-10-20 21:18:06 -05:00
parent a0e5edf8ba
commit 71eb844dd8
9 changed files with 71 additions and 41 deletions

View File

@@ -197,7 +197,7 @@ namespace Ryujinx.HLE.Debugger.Gdb
{
byte[] data = new byte[len];
Debugger.DebugProcess.CpuMemory.Read(addr, data);
Processor.Reply(Helpers.ToHex(data));
Processor.ReplyHex(data);
}
catch (InvalidMemoryRegionException)
{
@@ -422,17 +422,9 @@ namespace Ryujinx.HLE.Debugger.Gdb
string command = Helpers.FromHex(hexCommand);
Logger.Debug?.Print(LogClass.GdbStub, $"Received Rcmd: {command}");
string response = command.Trim().ToLowerInvariant() switch
{
"help" => "backtrace\nbt\nregisters\nreg\nget info\nminidump\n",
"get info" => Debugger.GetProcessInfo(),
"backtrace" or "bt" => Debugger.GetStackTrace(),
"registers" or "reg" => Debugger.GetRegisters(),
"minidump" => Debugger.GetMinidump(),
_ => $"Unknown command: {command}\n"
};
var rcmdDelegate = Debugger.FindRcmdDelegate(command);
Processor.Reply(Helpers.ToHex(response));
Processor.ReplyHex(rcmdDelegate?.Invoke(Debugger) ?? $"Unknown command: {command}\n");
}
catch (Exception e)
{