1 // 2 // Copyright (c) 2010-2024 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 using System; 8 using System.Linq; 9 using System.Text; 10 11 namespace Antmicro.Renode.Utilities.GDB.Commands 12 { 13 internal class ReadGeneralRegistersCommand : Command 14 { ReadGeneralRegistersCommand(CommandsManager manager)15 public ReadGeneralRegistersCommand(CommandsManager manager) : base(manager) 16 { 17 } 18 19 [Execute("g")] Execute()20 public PacketData Execute() 21 { 22 var registers = new StringBuilder(); 23 foreach(var i in manager.Cpu.GetRegisters().Where(x => x.IsGeneral)) 24 { 25 var start = registers.Length; 26 var value = manager.Cpu.GetRegister(i.Index); 27 foreach(var b in value.GetBytes(manager.Cpu.Endianness)) 28 { 29 registers.AppendFormat("{0:x2}", b); 30 } 31 32 ExpandRegisterValue(ref registers, start, registers.Length, i.Index); 33 } 34 35 return new PacketData(registers.ToString()); 36 } 37 } 38 } 39 40