mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-12-15 10:36:58 +00:00
gdb: refactor rcmd address parsing
This commit is contained in:
parent
ccca2e8282
commit
17a575a505
1 changed files with 27 additions and 13 deletions
|
|
@ -142,16 +142,12 @@ namespace Ryujinx.HLE.Debugger
|
||||||
return "No application process found\n";
|
return "No application process found\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
ulong startAddress = 0;
|
|
||||||
string trimmedArgs = arguments?.Trim() ?? string.Empty;
|
string trimmedArgs = arguments?.Trim() ?? string.Empty;
|
||||||
|
|
||||||
|
ulong startAddress = 0;
|
||||||
if (!string.IsNullOrEmpty(trimmedArgs))
|
if (!string.IsNullOrEmpty(trimmedArgs))
|
||||||
{
|
{
|
||||||
string value = trimmedArgs.StartsWith("0x", StringComparison.OrdinalIgnoreCase)
|
if (!TryParseAddressArgument(trimmedArgs, out startAddress))
|
||||||
? trimmedArgs[2..]
|
|
||||||
: trimmedArgs;
|
|
||||||
|
|
||||||
if (value.Length == 0 || !ulong.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out startAddress))
|
|
||||||
{
|
{
|
||||||
return $"Invalid address: {trimmedArgs}\n";
|
return $"Invalid address: {trimmedArgs}\n";
|
||||||
}
|
}
|
||||||
|
|
@ -216,13 +212,7 @@ namespace Ryujinx.HLE.Debugger
|
||||||
return "Missing address argument for `get mapping`\n";
|
return "Missing address argument for `get mapping`\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
ulong address;
|
if (!TryParseAddressArgument(trimmedArgs, out ulong address))
|
||||||
|
|
||||||
string value = trimmedArgs.StartsWith("0x", StringComparison.OrdinalIgnoreCase)
|
|
||||||
? trimmedArgs[2..]
|
|
||||||
: trimmedArgs;
|
|
||||||
|
|
||||||
if (value.Length == 0 || !ulong.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out address))
|
|
||||||
{
|
{
|
||||||
return $"Invalid address: {trimmedArgs}\n";
|
return $"Invalid address: {trimmedArgs}\n";
|
||||||
}
|
}
|
||||||
|
|
@ -287,6 +277,30 @@ namespace Ryujinx.HLE.Debugger
|
||||||
return "Unknown ";
|
return "Unknown ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool TryParseAddressArgument(string text, out ulong value)
|
||||||
|
{
|
||||||
|
value = 0;
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(text))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string trimmed = text.Trim();
|
||||||
|
|
||||||
|
if (trimmed.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
trimmed = trimmed[2..];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (trimmed.Length == 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ulong.TryParse(trimmed, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out value);
|
||||||
|
}
|
||||||
|
|
||||||
private static string GetAttributeFlags(KMemoryInfo info)
|
private static string GetAttributeFlags(KMemoryInfo info)
|
||||||
{
|
{
|
||||||
char locked = info.Attribute.HasFlag(MemoryAttribute.PermissionLocked) ? 'L' : '-';
|
char locked = info.Attribute.HasFlag(MemoryAttribute.PermissionLocked) ? 'L' : '-';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue