[Qemu-devel] [PATCH v2] gdbstub: allow killing QEMU via vKill command

Max Filippov posted 1 patch 5 years, 2 months ago
Test docker-clang@ubuntu passed
Test docker-mingw@fedora passed
Test asan passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190130192403.13754-1-jcmvbkbc@gmail.com
gdbstub.c | 4 ++++
1 file changed, 4 insertions(+)
[Qemu-devel] [PATCH v2] gdbstub: allow killing QEMU via vKill command
Posted by Max Filippov 5 years, 2 months ago
With multiprocess extensions gdb uses 'vKill' packet instead of 'k' to
kill the inferior. Handle 'vKill' the same way 'k' was handled in the
presence of single process.

Fixes: 7cf48f6752e5 ("gdbstub: add multiprocess support to
(f|s)ThreadInfo and ThreadExtraInfo")

Cc: Luc Michel <luc.michel@greensocs.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
Changes v1->v2:
- terminate QEMU in the vKill packet handler regardless of whatever the
  PID is or how many processes are attached [Luc Michel]

 gdbstub.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gdbstub.c b/gdbstub.c
index bfc7afb50968..96ffcd9d9d1d 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1383,6 +1383,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
 
             put_packet(s, buf);
             break;
+        } else if (strncmp(p, "Kill;", 5) == 0) {
+            /* Kill the target */
+            error_report("QEMU: Terminated via GDBstub");
+            exit(0);
         } else {
             goto unknown_command;
         }
-- 
2.11.0


Re: [Qemu-devel] [PATCH v2] gdbstub: allow killing QEMU via vKill command
Posted by Peter Maydell 5 years, 2 months ago
On Wed, 30 Jan 2019 at 19:24, Max Filippov <jcmvbkbc@gmail.com> wrote:
>
> With multiprocess extensions gdb uses 'vKill' packet instead of 'k' to
> kill the inferior. Handle 'vKill' the same way 'k' was handled in the
> presence of single process.
>
> Fixes: 7cf48f6752e5 ("gdbstub: add multiprocess support to
> (f|s)ThreadInfo and ThreadExtraInfo")
>
> Cc: Luc Michel <luc.michel@greensocs.com>
> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
> ---
> Changes v1->v2:
> - terminate QEMU in the vKill packet handler regardless of whatever the
>   PID is or how many processes are attached [Luc Michel]
>

Thanks; I'll take this via target-arm.next since I took the
multiprocess-support gdbstub patches.

-- PMM

Re: [Qemu-devel] [PATCH v2] gdbstub: allow killing QEMU via vKill command
Posted by Luc Michel 5 years, 2 months ago
On 1/30/19 8:24 PM, Max Filippov wrote:
> With multiprocess extensions gdb uses 'vKill' packet instead of 'k' to
> kill the inferior. Handle 'vKill' the same way 'k' was handled in the
> presence of single process.
> 
> Fixes: 7cf48f6752e5 ("gdbstub: add multiprocess support to
> (f|s)ThreadInfo and ThreadExtraInfo")
> 
> Cc: Luc Michel <luc.michel@greensocs.com>
> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Reviewed-by: Luc Michel <luc.michel@greensocs.com>

> ---
> Changes v1->v2:
> - terminate QEMU in the vKill packet handler regardless of whatever the
>   PID is or how many processes are attached [Luc Michel]
> 
>  gdbstub.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/gdbstub.c b/gdbstub.c
> index bfc7afb50968..96ffcd9d9d1d 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -1383,6 +1383,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
>  
>              put_packet(s, buf);
>              break;
> +        } else if (strncmp(p, "Kill;", 5) == 0) {
> +            /* Kill the target */
> +            error_report("QEMU: Terminated via GDBstub");
> +            exit(0);
>          } else {
>              goto unknown_command;
>          }
> 

Re: [Qemu-devel] [PATCH v2] gdbstub: allow killing QEMU via vKill command
Posted by KONRAD Frederic 5 years, 2 months ago

Le 1/31/19 à 5:15 PM, Luc Michel a écrit :
> On 1/30/19 8:24 PM, Max Filippov wrote:
>> With multiprocess extensions gdb uses 'vKill' packet instead of 'k' to
>> kill the inferior. Handle 'vKill' the same way 'k' was handled in the
>> presence of single process.
>>
>> Fixes: 7cf48f6752e5 ("gdbstub: add multiprocess support to
>> (f|s)ThreadInfo and ThreadExtraInfo")
>>
>> Cc: Luc Michel <luc.michel@greensocs.com>
>> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
> Reviewed-by: Luc Michel <luc.michel@greensocs.com>

Reviewed-by: KONRAD Frederic <frederic.konrad@adacore.com>
Tested-By: KONRAD Frederic <frederic.konrad@adacore.com>

Thanks!
Fred

> 
>> ---
>> Changes v1->v2:
>> - terminate QEMU in the vKill packet handler regardless of whatever the
>>    PID is or how many processes are attached [Luc Michel]
>>
>>   gdbstub.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/gdbstub.c b/gdbstub.c
>> index bfc7afb50968..96ffcd9d9d1d 100644
>> --- a/gdbstub.c
>> +++ b/gdbstub.c
>> @@ -1383,6 +1383,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
>>   
>>               put_packet(s, buf);
>>               break;
>> +        } else if (strncmp(p, "Kill;", 5) == 0) {
>> +            /* Kill the target */
>> +            error_report("QEMU: Terminated via GDBstub");
>> +            exit(0);
>>           } else {
>>               goto unknown_command;
>>           }
>>
>