diff mbox series

[v3,2/5] softmmu: pass the main loop status to gdb "Wxx" packet

Message ID 20230907112640.292104-3-chigot@adacore.com (mailing list archive)
State New, archived
Headers show
Series Risc-V/gdb: replace exit calls with proper shutdown | expand

Commit Message

Clément Chigot Sept. 7, 2023, 11:26 a.m. UTC
gdb_exit function aims to close gdb sessions and sends the exit code of
the current execution. It's being called by qemu_cleanup once the main
loop is over.
Until now, the exit code sent was always 0. Now that hardware can
shutdown this main loop with custom exit codes, these codes must be
transfered to gdb as well.

Signed-off-by: Clément Chigot <chigot@adacore.com>
---
 include/sysemu/sysemu.h | 2 +-
 softmmu/main.c          | 2 +-
 softmmu/runstate.c      | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

Comments

Alistair Francis Sept. 18, 2023, 2:05 a.m. UTC | #1
On Thu, Sep 7, 2023 at 9:26 PM Clément Chigot <chigot@adacore.com> wrote:
>
> gdb_exit function aims to close gdb sessions and sends the exit code of
> the current execution. It's being called by qemu_cleanup once the main
> loop is over.
> Until now, the exit code sent was always 0. Now that hardware can
> shutdown this main loop with custom exit codes, these codes must be
> transfered to gdb as well.
>
> Signed-off-by: Clément Chigot <chigot@adacore.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  include/sysemu/sysemu.h | 2 +-
>  softmmu/main.c          | 2 +-
>  softmmu/runstate.c      | 4 ++--
>  3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
> index 25be2a692e..73a37949c2 100644
> --- a/include/sysemu/sysemu.h
> +++ b/include/sysemu/sysemu.h
> @@ -101,7 +101,7 @@ bool defaults_enabled(void);
>
>  void qemu_init(int argc, char **argv);
>  int qemu_main_loop(void);
> -void qemu_cleanup(void);
> +void qemu_cleanup(int);
>
>  extern QemuOptsList qemu_legacy_drive_opts;
>  extern QemuOptsList qemu_common_drive_opts;
> diff --git a/softmmu/main.c b/softmmu/main.c
> index 694388bd7f..9b91d21ea8 100644
> --- a/softmmu/main.c
> +++ b/softmmu/main.c
> @@ -35,7 +35,7 @@ int qemu_default_main(void)
>      int status;
>
>      status = qemu_main_loop();
> -    qemu_cleanup();
> +    qemu_cleanup(status);
>
>      return status;
>  }
> diff --git a/softmmu/runstate.c b/softmmu/runstate.c
> index ee27e26048..d4e2e59e45 100644
> --- a/softmmu/runstate.c
> +++ b/softmmu/runstate.c
> @@ -794,9 +794,9 @@ void qemu_init_subsystems(void)
>  }
>
>
> -void qemu_cleanup(void)
> +void qemu_cleanup(int status)
>  {
> -    gdb_exit(0);
> +    gdb_exit(status);
>
>      /*
>       * cleaning up the migration object cancels any existing migration
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 25be2a692e..73a37949c2 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -101,7 +101,7 @@  bool defaults_enabled(void);
 
 void qemu_init(int argc, char **argv);
 int qemu_main_loop(void);
-void qemu_cleanup(void);
+void qemu_cleanup(int);
 
 extern QemuOptsList qemu_legacy_drive_opts;
 extern QemuOptsList qemu_common_drive_opts;
diff --git a/softmmu/main.c b/softmmu/main.c
index 694388bd7f..9b91d21ea8 100644
--- a/softmmu/main.c
+++ b/softmmu/main.c
@@ -35,7 +35,7 @@  int qemu_default_main(void)
     int status;
 
     status = qemu_main_loop();
-    qemu_cleanup();
+    qemu_cleanup(status);
 
     return status;
 }
diff --git a/softmmu/runstate.c b/softmmu/runstate.c
index ee27e26048..d4e2e59e45 100644
--- a/softmmu/runstate.c
+++ b/softmmu/runstate.c
@@ -794,9 +794,9 @@  void qemu_init_subsystems(void)
 }
 
 
-void qemu_cleanup(void)
+void qemu_cleanup(int status)
 {
-    gdb_exit(0);
+    gdb_exit(status);
 
     /*
      * cleaning up the migration object cancels any existing migration