[RFC PATCH RESEND 07/42] accel/split: Implement supports_guest_debug()

Philippe Mathieu-Daudé posted 42 patches 4 months, 3 weeks ago
[RFC PATCH RESEND 07/42] accel/split: Implement supports_guest_debug()
Posted by Philippe Mathieu-Daudé 4 months, 3 weeks ago
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/split/split-all.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/accel/split/split-all.c b/accel/split/split-all.c
index 8b9f8ff77a4..cb910300931 100644
--- a/accel/split/split-all.c
+++ b/accel/split/split-all.c
@@ -61,7 +61,18 @@ static bool split_cpus_are_resettable(AccelState *as)
 
 static bool split_supports_guest_debug(AccelState *as)
 {
-    g_assert_not_reached();
+    SplitAccelState *sas = SPLIT_ACCEL(as);
+    AccelClass *hwc = ACCEL_GET_CLASS(sas->hw);
+    AccelClass *swc = ACCEL_GET_CLASS(sas->sw);
+    bool supported = false;
+
+    if (hwc->supports_guest_debug) {
+        supported |= hwc->supports_guest_debug(sas->hw);
+    }
+    if (swc->supports_guest_debug) {
+        supported |= swc->supports_guest_debug(sas->sw);
+    }
+    return supported;
 }
 
 static int split_gdbstub_supported_sstep_flags(AccelState *as)
-- 
2.49.0


Re: [RFC PATCH RESEND 07/42] accel/split: Implement supports_guest_debug()
Posted by Richard Henderson 4 months, 3 weeks ago
On 6/20/25 10:27, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/split/split-all.c | 13 ++++++++++++-
>   1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/split/split-all.c b/accel/split/split-all.c
> index 8b9f8ff77a4..cb910300931 100644
> --- a/accel/split/split-all.c
> +++ b/accel/split/split-all.c
> @@ -61,7 +61,18 @@ static bool split_cpus_are_resettable(AccelState *as)
>   
>   static bool split_supports_guest_debug(AccelState *as)
>   {
> -    g_assert_not_reached();
> +    SplitAccelState *sas = SPLIT_ACCEL(as);
> +    AccelClass *hwc = ACCEL_GET_CLASS(sas->hw);
> +    AccelClass *swc = ACCEL_GET_CLASS(sas->sw);
> +    bool supported = false;
> +
> +    if (hwc->supports_guest_debug) {
> +        supported |= hwc->supports_guest_debug(sas->hw);
> +    }
> +    if (swc->supports_guest_debug) {
> +        supported |= swc->supports_guest_debug(sas->sw);
> +    }
> +    return supported;
>   }
>   
>   static int split_gdbstub_supported_sstep_flags(AccelState *as)

Require both to support debug?  Otherwise support depends on state.


r~