mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-12-12 22:36:59 +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";
|
||||
}
|
||||
|
||||
ulong startAddress = 0;
|
||||
string trimmedArgs = arguments?.Trim() ?? string.Empty;
|
||||
|
||||
ulong startAddress = 0;
|
||||
if (!string.IsNullOrEmpty(trimmedArgs))
|
||||
{
|
||||
string value = trimmedArgs.StartsWith("0x", StringComparison.OrdinalIgnoreCase)
|
||||
? trimmedArgs[2..]
|
||||
: trimmedArgs;
|
||||
|
||||
if (value.Length == 0 || !ulong.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out startAddress))
|
||||
if (!TryParseAddressArgument(trimmedArgs, out startAddress))
|
||||
{
|
||||
return $"Invalid address: {trimmedArgs}\n";
|
||||
}
|
||||
|
|
@ -216,13 +212,7 @@ namespace Ryujinx.HLE.Debugger
|
|||
return "Missing address argument for `get mapping`\n";
|
||||
}
|
||||
|
||||
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))
|
||||
if (!TryParseAddressArgument(trimmedArgs, out ulong address))
|
||||
{
|
||||
return $"Invalid address: {trimmedArgs}\n";
|
||||
}
|
||||
|
|
@ -287,6 +277,30 @@ namespace Ryujinx.HLE.Debugger
|
|||
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)
|
||||
{
|
||||
char locked = info.Attribute.HasFlag(MemoryAttribute.PermissionLocked) ? 'L' : '-';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue