qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/arm/cpu64: Use 32-bit GDBstub when running in 32-bit


From: Richard Henderson
Subject: Re: [PATCH] target/arm/cpu64: Use 32-bit GDBstub when running in 32-bit KVM mode
Date: Fri, 7 Jan 2022 12:29:25 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 1/7/22 7:54 AM, Ard Biesheuvel wrote:
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 15245a60a8c7..3dede9e2ec31 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -903,9 +903,15 @@ static bool aarch64_cpu_get_aarch64(Object *obj, Error 
**errp)
      return arm_feature(&cpu->env, ARM_FEATURE_AARCH64);
  }
+static gchar *arm_gdb_arch_name(CPUState *cs)
+{
+    return g_strdup("arm");
+}
+
  static void aarch64_cpu_set_aarch64(Object *obj, bool value, Error **errp)
  {
      ARMCPU *cpu = ARM_CPU(obj);
+    CPUClass *cc = CPU_GET_CLASS(obj);
/* At this time, this property is only allowed if KVM is enabled. This
       * restriction allows us to avoid fixing up functionality that assumes a
@@ -919,6 +925,12 @@ static void aarch64_cpu_set_aarch64(Object *obj, bool 
value, Error **errp)
              return;
          }
          unset_feature(&cpu->env, ARM_FEATURE_AARCH64);
+
+        cc->gdb_read_register = arm_cpu_gdb_read_register;
+        cc->gdb_write_register = arm_cpu_gdb_write_register;
+        cc->gdb_num_core_regs = 26;
+        cc->gdb_core_xml_file = "arm-core.xml";
+        cc->gdb_arch_name = arm_gdb_arch_name;

It would be nice to split out a function in cpu.c for this,
perhaps arm_cpu_class_gdb_init().

Otherwise this looks like the correct approach.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]