mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-10-15 21:54:34 +00:00
gdb: Add monitor minidump
command (ryubing/ryujinx!158)
See merge request ryubing/ryujinx!158
This commit is contained in:
parent
ef9810582a
commit
1865be47cf
@ -1037,12 +1037,13 @@ namespace Ryujinx.HLE.Debugger
|
||||
|
||||
string response = command.Trim().ToLowerInvariant() switch
|
||||
{
|
||||
"help" => "backtrace\nbt\nregisters\nreg\nget info\n",
|
||||
"help" => "backtrace\nbt\nregisters\nreg\nget info\nminidump",
|
||||
"get info" => GetProcessInfo(),
|
||||
"backtrace" => GetStackTrace(),
|
||||
"bt" => GetStackTrace(),
|
||||
"registers" => GetRegisters(),
|
||||
"reg" => GetRegisters(),
|
||||
"minidump" => GetMinidump(),
|
||||
_ => $"Unknown command: {command}\n"
|
||||
};
|
||||
|
||||
@ -1077,6 +1078,42 @@ namespace Ryujinx.HLE.Debugger
|
||||
return Process.Debugger.GetCpuRegisterPrintout(DebugProcess.GetThread(gThread.Value));
|
||||
}
|
||||
|
||||
private string GetMinidump()
|
||||
{
|
||||
var response = new StringBuilder();
|
||||
response.AppendLine("=== Begin Minidump ===\n");
|
||||
response.AppendLine(GetProcessInfo());
|
||||
|
||||
foreach (var thread in GetThreads())
|
||||
{
|
||||
response.AppendLine($"=== Thread {thread.ThreadUid} ===");
|
||||
try
|
||||
{
|
||||
string stackTrace = Process.Debugger.GetGuestStackTrace(thread);
|
||||
response.AppendLine(stackTrace);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
response.AppendLine($"[Error getting stack trace: {e.Message}]");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string registers = Process.Debugger.GetCpuRegisterPrintout(thread);
|
||||
response.AppendLine(registers);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
response.AppendLine($"[Error getting registers: {e.Message}]");
|
||||
}
|
||||
}
|
||||
|
||||
response.AppendLine("=== End Minidump ===");
|
||||
|
||||
Logger.Info?.Print(LogClass.GdbStub, response.ToString());
|
||||
return response.ToString();
|
||||
}
|
||||
|
||||
private string GetProcessInfo()
|
||||
{
|
||||
try
|
||||
|
Loading…
Reference in New Issue
Block a user