From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254859; cv=none; d=zoho.com; s=zohoarc; b=F9e6V3CpEoxrbX9w4UPxLQnDkhh61fT+E1cDu1WPOtfb6DnOlWshOos5WbXQ8S+5CKTjY22odnnFyAlbarS6pALz7aJBC8e+gObB42dazCiotP0H31Idd0mYuIJjU2l2lnTeyPRZndlp4UDz/s1HbqH5zB0jyThOGwD8hQYrrJk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254859; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=9gs1pjZcHlRiuvyF89Xf0dDUFOI/nZh6LcrIM/HDQRg=; b=D39zpUHl7su7HVXUy6WefIUJ1fmlh8r1FIAOKzzBHrTDfZoqq8kQfUZbjkypTHWL/wE1RMZWleFFOy1GLkTP1Ms/3v9HCg6uRFRvYNP6rYlls5hlo5tE1n5fvYbrjq4dONvuYC3d34Zid2rbogZWh2sOVqB2NVgEQhkd/Fbntvc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15562548598161001.3865219329645; Thu, 25 Apr 2019 22:00:59 -0700 (PDT) Received: from localhost ([127.0.0.1]:39312 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsyg-00058J-Mx for importer@patchew.org; Fri, 26 Apr 2019 01:00:50 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmp-00012o-Q6 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsap-0004Ci-L8 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:13 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:45149) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsao-0004Az-7r for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:11 -0400 Received: by mail-wr1-x444.google.com with SMTP id s15so2393810wra.12 for ; Thu, 25 Apr 2019 21:36:10 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9gs1pjZcHlRiuvyF89Xf0dDUFOI/nZh6LcrIM/HDQRg=; b=kLtpBCmRDU9fZaZ4u+zfnDq2IYGmpuz8pRjP9UzKFSjxVYtfyQ1twqL9mSlCGwZ/7I NmN7NAMvQe8QqQz9R+TADR30oh4pk3Cko5t2qZaPf3Xqz9UbxksCgUS6OBEKBWn7G55Z h/oUFGNHE7a2Nghh0kyr4JhSW03JEYDe0fSv9rZ+KZ/6sN90LWAy5upKbrlyCDIk3QmK 7lxdZtaTc8v9ICwTI4BLWFweNPjCac65uK5fWFoz/0rFJTKTD4iGlU+nppQsqJKG6fT2 u2qVVILTAaiDGJKWDRGZKMM/HOeU1HciYDgm9VCQrKjr+Qj3VmtXdCfgPK4XmXA71UVP Aavg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9gs1pjZcHlRiuvyF89Xf0dDUFOI/nZh6LcrIM/HDQRg=; b=bFtbv2ZWhGGpX0Jh/8pl+vTeRXOqea1msuAgN3nXt1LIwvjsQGo92va70D2cUgjSAu O144KTNOhvaeJATQNGUUd5HyGTATLltcyouiz2wOdrZ7rmQBGpJoLyBp151RCMagPV3E kbGWWaGUXFwGoEHIwPah1ac8UzvgyF3bq9zbWp0h4CHL+Gp/oYZSOVKduLxLo2clNFBy 16y7NP2P2WfI4Nd1VNGJppgJA2tt6gbJBqUpY/Mw7cMbDXA7Hz8ZLyKIynY1fbot4KYC Zg00av+YVzncvpHQS0/R40OmesW79KbE8u23om8G6mRVJv5miKeR8YBOkBMIcZp4fAkY Ntng== X-Gm-Message-State: APjAAAXasrrFML1e5D1GCcGu2qxex90HTIVouHCrazG+s6W6aem9nSwV 1nyqNnxv0aoqp2VyL/oPeEYoZqQ1 X-Google-Smtp-Source: APXvYqw5ZK+DjJi4ZuSsE7jlnPCnrsBG0mciDgRXXh+ASVEqj+9Zv9ybYi8kv4WdPWu0iNHw33ikTg== X-Received: by 2002:a05:6000:11cf:: with SMTP id i15mr27500648wrx.287.1556253368768; Thu, 25 Apr 2019 21:36:08 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:38 +0300 Message-Id: <20190426043558.6888-2-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v7 01/21] gdbstub: Add infrastructure to parse cmd packets X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/gdbstub.c b/gdbstub.c index d54abd17cc..d5e0f3878a 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1268,6 +1268,206 @@ out: return res; } =20 +typedef union GdbCmdVariant { + const char *data; + uint8_t opcode; + unsigned long val_ul; + unsigned long long val_ull; + struct { + GDBThreadIdKind kind; + uint32_t pid; + uint32_t tid; + } thread_id; +} GdbCmdVariant; + +static const char *cmd_next_param(const char *param, const char delimiter) +{ + static const char all_delimiters[] =3D ",;:=3D"; + char curr_delimiters[2] =3D {0}; + const char *delimiters; + + if (delimiter =3D=3D '?') { + delimiters =3D all_delimiters; + } else if (delimiter =3D=3D '0') { + return strchr(param, '\0'); + } else if (delimiter =3D=3D '.' && *param) { + return param + 1; + } else { + curr_delimiters[0] =3D delimiter; + delimiters =3D curr_delimiters; + } + + param +=3D strcspn(param, delimiters); + if (*param) { + param++; + } + return param; +} + +static int cmd_parse_params(const char *data, const char *schema, + GdbCmdVariant *params, int *num_params) +{ + int curr_param; + const char *curr_schema, *curr_data; + + *num_params =3D 0; + + if (!schema) { + return 0; + } + + curr_schema =3D schema; + curr_param =3D 0; + curr_data =3D data; + while (curr_schema[0] && curr_schema[1] && *curr_data) { + switch (curr_schema[0]) { + case 'l': + if (qemu_strtoul(curr_data, &curr_data, 16, + ¶ms[curr_param].val_ul)) { + return -EINVAL; + } + curr_param++; + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + case 'L': + if (qemu_strtou64(curr_data, &curr_data, 16, + (uint64_t *)¶ms[curr_param].val_ull)) { + return -EINVAL; + } + curr_param++; + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + case 's': + params[curr_param].data =3D curr_data; + curr_param++; + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + case 'o': + params[curr_param].opcode =3D *(uint8_t *)curr_data; + curr_param++; + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + case 't': + params[curr_param].thread_id.kind =3D + read_thread_id(curr_data, &curr_data, + ¶ms[curr_param].thread_id.pid, + ¶ms[curr_param].thread_id.tid); + curr_param++; + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + case '?': + curr_data =3D cmd_next_param(curr_data, curr_schema[1]); + break; + default: + return -EINVAL; + } + curr_schema +=3D 2; + } + + *num_params =3D curr_param; + return 0; +} + +typedef struct GdbCmdContext { + GDBState *s; + GdbCmdVariant *params; + int num_params; + uint8_t mem_buf[MAX_PACKET_LENGTH]; + char str_buf[MAX_PACKET_LENGTH + 1]; +} GdbCmdContext; + +typedef void (*GdbCmdHandler)(GdbCmdContext *gdb_ctx, void *user_ctx); + +/* + * cmd_startswith -> cmd is compared using startswith + * + * + * schema definitions: + * Each schema parameter entry consists of 2 chars, + * the first char represents the parameter type handling + * the second char represents the delimiter for the next parameter + * + * Currently supported schema types: + * 'l' -> unsigned long (stored in .val_ul) + * 'L' -> unsigned long long (stored in .val_ull) + * 's' -> string (stored in .data) + * 'o' -> single char (stored in .opcode) + * 't' -> thread id (stored in .thread_id) + * '?' -> skip according to delimiter + * + * Currently supported delimiters: + * '?' -> Stop at any delimiter (",;:=3D\0") + * '0' -> Stop at "\0" + * '.' -> Skip 1 char unless reached "\0" + * Any other value is treated as the delimiter value itself + */ +typedef struct GdbCmdParseEntry { + GdbCmdHandler handler; + const char *cmd; + union { + int flags; + struct { + int cmd_startswith:1; + }; + }; + const char *schema; +} GdbCmdParseEntry; + +static inline int startswith(const char *string, const char *pattern) +{ + return !strncmp(string, pattern, strlen(pattern)); +} + +static int process_string_cmd( + GDBState *s, void *user_ctx, const char *data, + const GdbCmdParseEntry *cmds, int num_cmds) + __attribute__((unused)); + +static int process_string_cmd(GDBState *s, void *user_ctx, const char *dat= a, + const GdbCmdParseEntry *cmds, int num_cmds) +{ + int i, schema_len, max_num_params =3D 0; + GdbCmdContext gdb_ctx; + + if (!cmds) { + return -1; + } + + for (i =3D 0; i < num_cmds; i++) { + const GdbCmdParseEntry *cmd =3D &cmds[i]; + g_assert(cmd->handler && cmd->cmd); + + if ((cmd->cmd_startswith && !startswith(data, cmd->cmd)) || + (!cmd->cmd_startswith && strcmp(cmd->cmd, data))) { + continue; + } + + if (cmd->schema) { + schema_len =3D strlen(cmd->schema); + if (schema_len % 2) { + return -2; + } + + max_num_params =3D schema_len / 2; + } + + gdb_ctx.params =3D + (GdbCmdVariant *)alloca(sizeof(*gdb_ctx.params) * max_num_para= ms); + memset(gdb_ctx.params, 0, sizeof(*gdb_ctx.params) * max_num_params= ); + + if (cmd_parse_params(&data[strlen(cmd->cmd)], cmd->schema, + gdb_ctx.params, &gdb_ctx.num_params)) { + return -1; + } + + gdb_ctx.s =3D s; + cmd->handler(&gdb_ctx, user_ctx); + return 0; + } + + return -1; +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254708; cv=none; d=zoho.com; s=zohoarc; b=Ef8xQQOfv/o2umZGa613/k1T9Er+t33uvNW1Hy1KDk5u08crSMg9x+zeZw7PZnnP95+zaOYXo5dHyMzpfmlRIn24+Q+AkYhiWuOqVPKjGosYKvMtyv7M9EZgUShzPZFYJyBCJMUK4LiIq/4rvBHp30W5aWed4pr7TYZHVyJzmQM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254708; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=o9g7yNsrGp0cm0nQks6oxRIXlO2CyhOpcYCjoRIegtQ=; b=eTBK5xh67/cY1UcDL/67RppwlqJG8XvKgEIh8pbYxYh7WDE1RxuQAeUAI0m69rpc2bVxiu6URHuuEHVLn7K22iTcfZnjYbxrXuHZVAEkGmEuzzvaHi6EXsfp3c/PyPn7SSdea0cna5Ht34nE6C09VhDEO58vDgWvlOt9pCa9lqI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254707997486.70210712617643; Thu, 25 Apr 2019 21:58:27 -0700 (PDT) Received: from localhost ([127.0.0.1]:39255 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJswJ-0002hS-UV for importer@patchew.org; Fri, 26 Apr 2019 00:58:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmn-0000dE-Ur for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsar-0004Du-Ho for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:15 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:41405) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsap-0004CV-Vj for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:13 -0400 Received: by mail-wr1-x444.google.com with SMTP id c12so2424813wrt.8 for ; Thu, 25 Apr 2019 21:36:11 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.08 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o9g7yNsrGp0cm0nQks6oxRIXlO2CyhOpcYCjoRIegtQ=; b=ed8ZoRcprNxGRyN50dgEXFK6upOUMA19AsUfWamwRpdE7qA+3SFCx/tZyNPPWC21wD 2FDvY6SCgxfTdAvehMjKZLR5X4Tuu9YLnrI4EzvCXMihKtV4Vv29sAq1iQasJoyQlouZ mBHfPYleRDND41NzPGs1O+M3QpSbIEl1ySnZoAVOhci+sqnWYUA7R91m6rf8GgQ/UtYo fA+I+ve3K3Y798TW3awfjETUU5FG3RMtT0WT56xzHlwREy3F5/UtNSkJl85MD3Fdj6+4 As1TDpjoXz+mqDqdAxgHzqbHEwCOf3aaiJtkVfgCqt/JiKxMbdYRiJmTHngtisuf5+ke EJsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o9g7yNsrGp0cm0nQks6oxRIXlO2CyhOpcYCjoRIegtQ=; b=Mg0b/6f1C8finEcAHw/jHqo97eN9BUdUGFQAMGM1Pk2OE/Ri+32/CSa77P3eaRM3HM XqX9LLA4JKj+cfwuq7WqP7Q+QmaTJ6V++PSBqI3cmUbmZj/3Bf3pzuBU2Js5ZwEDNp4s WYowfj0r4iChfajn1ciqveo3TdoP7S4YnTai/IKNYuvxa7YTJt4Ri6gtl8eQNeNf2ZFO PkuFZYF7QPYxzdy534Y00gtXPZ+e3EjGN3/qjsp4ZZ9PCJ/gD3eTUnVR8ySeQkY3ueVp geheKvty+Jwvvc3NO3bKHsX2fcQeD3MpDBsnoAdb6wkGKtXYBSw42rd0bKIuKWNDkxZA 0jTw== X-Gm-Message-State: APjAAAXO87GEaQw/yswAuPlNq9xK8d1loCek1Us1LLBA+7UE02fYBH2r GLV2SZaYiaBIwPQYJ8i3/iuYXgYa X-Google-Smtp-Source: APXvYqwc6/qPUoqs5jAyuzXvR9bumJDVCv9gma9ByBlM++ygXthng2BLyO9rKZP7VzpNidpvy/kxCA== X-Received: by 2002:adf:f64f:: with SMTP id x15mr8687595wrp.202.1556253370427; Thu, 25 Apr 2019 21:36:10 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:39 +0300 Message-Id: <20190426043558.6888-3-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v7 02/21] gdbstub: Implement deatch (D pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 90 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 40 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index d5e0f3878a..621d689868 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1418,11 +1418,6 @@ static inline int startswith(const char *string, con= st char *pattern) return !strncmp(string, pattern, strlen(pattern)); } =20 -static int process_string_cmd( - GDBState *s, void *user_ctx, const char *data, - const GdbCmdParseEntry *cmds, int num_cmds) - __attribute__((unused)); - static int process_string_cmd(GDBState *s, void *user_ctx, const char *dat= a, const GdbCmdParseEntry *cmds, int num_cmds) { @@ -1468,6 +1463,41 @@ static int process_string_cmd(GDBState *s, void *use= r_ctx, const char *data, return -1; } =20 +static void handle_detach(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + GDBProcess *process; + GDBState *s =3D gdb_ctx->s; + uint32_t pid =3D 1; + + if (s->multiprocess) { + if (!gdb_ctx->num_params) { + put_packet(s, "E22"); + return; + } + + pid =3D gdb_ctx->params[0].val_ul; + } + + process =3D gdb_get_process(s, pid); + gdb_process_breakpoint_remove_all(s, process); + process->attached =3D false; + + if (pid =3D=3D gdb_get_cpu_pid(s, s->c_cpu)) { + s->c_cpu =3D gdb_first_attached_cpu(s); + } + + if (pid =3D=3D gdb_get_cpu_pid(s, s->g_cpu)) { + s->g_cpu =3D gdb_first_attached_cpu(s); + } + + if (!s->c_cpu) { + /* No more process attached */ + gdb_syscall_mode =3D GDB_SYS_DISABLED; + gdb_continue(s); + } + put_packet(s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1482,6 +1512,7 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) uint8_t *registers; target_ulong addr, len; GDBThreadIdKind thread_kind; + const GdbCmdParseEntry *cmd_parser =3D NULL; =20 trace_gdbstub_io_command(line_buf); =20 @@ -1582,42 +1613,15 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) error_report("QEMU: Terminated via GDBstub"); exit(0); case 'D': - /* Detach packet */ - pid =3D 1; - - if (s->multiprocess) { - unsigned long lpid; - if (*p !=3D ';') { - put_packet(s, "E22"); - break; - } - - if (qemu_strtoul(p + 1, &p, 16, &lpid)) { - put_packet(s, "E22"); - break; - } - - pid =3D lpid; - } - - process =3D gdb_get_process(s, pid); - gdb_process_breakpoint_remove_all(s, process); - process->attached =3D false; - - if (pid =3D=3D gdb_get_cpu_pid(s, s->c_cpu)) { - s->c_cpu =3D gdb_first_attached_cpu(s); - } - - if (pid =3D=3D gdb_get_cpu_pid(s, s->g_cpu)) { - s->g_cpu =3D gdb_first_attached_cpu(s); - } - - if (s->c_cpu =3D=3D NULL) { - /* No more process attached */ - gdb_syscall_mode =3D GDB_SYS_DISABLED; - gdb_continue(s); + { + static const GdbCmdParseEntry detach_cmd_desc =3D { + .handler =3D handle_detach, + .cmd =3D "D", + .cmd_startswith =3D 1, + .schema =3D "?.l0" + }; + cmd_parser =3D &detach_cmd_desc; } - put_packet(s, "OK"); break; case 's': if (*p !=3D '\0') { @@ -1990,6 +1994,12 @@ static int gdb_handle_packet(GDBState *s, const char= *line_buf) put_packet(s, buf); break; } + + if (cmd_parser && + process_string_cmd(s, NULL, line_buf, cmd_parser, 1)) { + put_packet(s, ""); + } + return RS_IDLE; } =20 --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254704; cv=none; d=zoho.com; s=zohoarc; b=JoFX+pliUKyXviAhEUeF4x801NkIYcxfYttZMf5NBxFjZINkMf6C8GIVDE3jk4RDyunY4MKZeqy47H7lkAQ6m3t0/ziOoKsdsAgfVg4P3U+OsNWsZ7laB/QwAPCMJYCJCASvPbeFoXLeJu4SPZr/d+a2ActPmkjBPRc66UFQ1Dg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254704; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=lYm7IhGBrxn52sVAeIC90HrrQ0q55SD5y2VdGObDHgY=; b=dlZY5p6BbdkIAQg6dexwHzGLAJ6u8ldj55dcTiiGS7YV5Q2feoUyeEXLJ4b6tEWEo+mSKIuTLYki6v/R2LH4hrAuT04vv+5HZ8HmxhsLgZvNi+3kD4R3oMgfOQ07JdYr7k/38sztkV3IY6j/WXf+HB4UawT9OFsSLOb0AXNNMEA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254704488297.3349304465494; Thu, 25 Apr 2019 21:58:24 -0700 (PDT) Received: from localhost ([127.0.0.1]:39253 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJswH-0002dn-D0 for importer@patchew.org; Fri, 26 Apr 2019 00:58:21 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmm-0000dG-1v for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsat-0004GT-C9 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:17 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:35593) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsar-0004DS-Ta for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:14 -0400 Received: by mail-wm1-x344.google.com with SMTP id y197so2376235wmd.0 for ; Thu, 25 Apr 2019 21:36:13 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lYm7IhGBrxn52sVAeIC90HrrQ0q55SD5y2VdGObDHgY=; b=GuxftqfDBOC6Gh/IgmEfBv1W4NhNRan/qGK3Dw5MJKzDR69QPEUivIShut7Q7Axv5d LKh7QfQq9c6M60hcAgxOMxUeyjEjwAuVFqR9j6MYmF06zjoJT2KFjxHqViZmXJp/ZL01 xP8wxFFZwHm0XjXTyMgO++xCRLbZhYdFCmaJSPeQlGOOETRqQQ/4gM53bFpeCsZOxFG4 z2rkIs+OWj5DdwLn1nzt3xAQgo0jKiUpkaDmJwkizn2FaTzezdh7IvGXF/TWJJV/tw25 hUUeYx/fSkksiQd32hwBEXvT/T8loySXGKbUvr4xRhcDK0LPNH93hcQLAAlg3MXTeIhu pUoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lYm7IhGBrxn52sVAeIC90HrrQ0q55SD5y2VdGObDHgY=; b=CMbpIzFDYj3nbA1E9aKA/K7yCB75hlD271s/rnQVKcNAMhVGFsDbcuwqsGrR4r8GMX QnjyfklMsA0n7mI8oG1uWIBY6qL8QMeYECzajjdcKF0SSoBkwhcFTkI0Ecm3D96/Plah v+ceHwtznwqvtb/7+cm6bFhd15AqpBAlniEV/EgRj0uW3nEvQTlCiQhu9zWU4aj5Cbwf NNLABiHbavsMEW3ZO/Oii2IOf91EaO/mfnGxsporgIRFNuNBC763DaASJ4baZB8Lh8bS ctz3rEqBtFfsrlQJEpVZ4BPRQveTfwyMbBX2Kf+5+OBLorzRLQM6YL54lzRzudWjN7N0 TFFA== X-Gm-Message-State: APjAAAXOFwAKEmJOMYhtnQbRmHbH0fZmLQoCM8R49p+B9Giu1zaxMgDH BaP/3RYEA7gUAF41WfSmD9omLZol X-Google-Smtp-Source: APXvYqwifvW1CP6iF7M4v4S4Du7nNXfC0gtBqNcSoi3t0MIFYMiTlpYu6iA2UttVNjJeMUSrhdCVuA== X-Received: by 2002:a1c:a103:: with SMTP id k3mr6221401wme.8.1556253372530; Thu, 25 Apr 2019 21:36:12 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:40 +0300 Message-Id: <20190426043558.6888-4-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 Subject: [Qemu-devel] [PATCH v7 03/21] gdbstub: Implement thread_alive (T pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 621d689868..c47ef7dd9c 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1498,6 +1498,30 @@ static void handle_detach(GdbCmdContext *gdb_ctx, vo= id *user_ctx) put_packet(s, "OK"); } =20 +static void handle_thread_alive(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + CPUState *cpu; + + if (!gdb_ctx->num_params) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + if (gdb_ctx->params[0].thread_id.kind =3D=3D GDB_READ_THREAD_ERR) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + cpu =3D gdb_get_cpu(gdb_ctx->s, gdb_ctx->params[0].thread_id.pid, + gdb_ctx->params[0].thread_id.tid); + if (!cpu) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1798,17 +1822,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'T': - thread_kind =3D read_thread_id(p, &p, &pid, &tid); - if (thread_kind =3D=3D GDB_READ_THREAD_ERR) { - put_packet(s, "E22"); - break; - } - cpu =3D gdb_get_cpu(s, pid, tid); - - if (cpu !=3D NULL) { - put_packet(s, "OK"); - } else { - put_packet(s, "E22"); + { + static const GdbCmdParseEntry thread_alive_cmd_desc =3D { + .handler =3D handle_thread_alive, + .cmd =3D "T", + .cmd_startswith =3D 1, + .schema =3D "t0" + }; + cmd_parser =3D &thread_alive_cmd_desc; } break; case 'q': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556255215; cv=none; d=zoho.com; s=zohoarc; b=MN8Ck1gAevnA6WcGIALYRFiXDAvOEPunD9QRWWNSEZE3yKr3fqh9bZm/lhE4jE5PvOLM3hEd+HM54ssisBxRBmqdLCOMOITr34TEXxo6c2qu2AuzDZQDr5NRwuZiPj1vIloZReWJ2YOSPVVHgrGRNMSQsjNwsl1n1iAwlU337XQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556255215; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=9IF4rsqYBB5CcGAeM/Zis8CV+HM8l1BP4iU1qHaXB5E=; b=kY8RimwXYcmr/ifNoKi/BYKkyBNNF9QV7A4Hi3ghWlnx3QEnbCYeKR99Wd1CryarhZzj0M6eKvzmZHLVJuMci9pjhJLcZRjCR1L2Cj5vKXwEX8bCCoQ5YD+jELYdnvzox2/n+mnM3de20sVY+iX/R0IDSNAH6Sqz4zYN0iMmAQI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 155625521548890.01295816771619; Thu, 25 Apr 2019 22:06:55 -0700 (PDT) Received: from localhost ([127.0.0.1]:39394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJt4L-0002Av-BM for importer@patchew.org; Fri, 26 Apr 2019 01:06:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmm-0000dE-1d for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsax-0004Ma-3v for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:20 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:35593) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsav-0004Fx-6v for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:18 -0400 Received: by mail-wm1-x342.google.com with SMTP id y197so2376291wmd.0 for ; Thu, 25 Apr 2019 21:36:15 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9IF4rsqYBB5CcGAeM/Zis8CV+HM8l1BP4iU1qHaXB5E=; b=HLKvgcbYz5oBPXP2GpJ5HgTkUYRiZAg/mFOG7RjmjJcSr+ZHJCK7Bw4ohI57lQPO9N bPGcPJO0L0O/Fzd39NMxWQTvT954J0z6NjZrOjrX+EQOyIAHmNS4oj4m7yBlsuW1Mh8b G47styCjvpgzioz8hNLhS7qqZhJQRCgwJ5M5Q90dZz7DkeAk90OmXNmbz3/SeZkKcyIx 33ckdLYbmHoGUnieYXPylSgJw4AvbMbF1EoWEhkyOhz/+0kLhumDhKG6Iegyfc1q1Dar 0l03EuLJtfbzUES5P42U+vAlkpfv+TasV4tEuqxImDI8FOTZn6WFz/Unzss8b+pYSeIp 8tzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9IF4rsqYBB5CcGAeM/Zis8CV+HM8l1BP4iU1qHaXB5E=; b=BYC4orNQ9lph/jhLdFGs4J0QgXzHT+SmWqY8wlQS0g6KfSoAEx13eP3kYRmYGkuatS sNmK2LF4QBoFknFzdkJtddeg0j/Q1VJjqFl2tvVA1DSdPBndO5wLAf8D2ubxvKNmZ4vB iA/iLBiyJQ8TLcqBLeJoodCSYT8cGPNSKC5v00bX459eAXfyTUtJl5q2mKuL0Rz5IxjG NV8JtXRv6OUf6mrWPXBOfUcPDbOiCLpQ4qOA8Di4eyG0THH4y5aXGGPpsCyIret0Tiu1 nL9ZsZ1+A8ItNWKqsPjaDvrJQg5kvmZHsapN8bCNDzbjUKHQc3y42Uye7IwIJETcSlZ8 BhkQ== X-Gm-Message-State: APjAAAUEQ6nZP0KWbWE439429fFSrW2uYB/veoOtj9CE++gehVL3TMfd CyMdKN8PucnQSeY7p8/tde7ECBqb X-Google-Smtp-Source: APXvYqz8m2Sr6cGpDFTo6ikiMamPTXHa/khDgLP5rjt9APzij6a3FmxuNdU9CQ+0kLgH3VASc7joQA== X-Received: by 2002:a1c:6783:: with SMTP id b125mr5815868wmc.79.1556253374335; Thu, 25 Apr 2019 21:36:14 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:41 +0300 Message-Id: <20190426043558.6888-5-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 Subject: [Qemu-devel] [PATCH v7 04/21] gdbstub: Implement continue (c pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index c47ef7dd9c..89f1ab6524 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1522,6 +1522,16 @@ static void handle_thread_alive(GdbCmdContext *gdb_c= tx, void *user_ctx) put_packet(gdb_ctx->s, "OK"); } =20 +static void handle_continue(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (gdb_ctx->num_params) { + gdb_set_cpu_pc(gdb_ctx->s, gdb_ctx->params[0].val_ull); + } + + gdb_ctx->s->signal =3D 0; + gdb_continue(gdb_ctx->s); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1558,13 +1568,16 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) gdb_breakpoint_remove_all(); break; case 'c': - if (*p !=3D '\0') { - addr =3D strtoull(p, (char **)&p, 16); - gdb_set_cpu_pc(s, addr); + { + static const GdbCmdParseEntry continue_cmd_desc =3D { + .handler =3D handle_continue, + .cmd =3D "c", + .cmd_startswith =3D 1, + .schema =3D "L0" + }; + cmd_parser =3D &continue_cmd_desc; } - s->signal =3D 0; - gdb_continue(s); - return RS_IDLE; + break; case 'C': s->signal =3D gdb_signal_to_target (strtoul(p, (char **)&p, 16)); if (s->signal =3D=3D -1) --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254547; cv=none; d=zoho.com; s=zohoarc; b=SbjmGuZUoCbR50FjpAbVx4lfWxc9pqvWpI2XuPsW+rkR08WDPuKmntQmsZeqb0AJRoULeYgfExE+CMEB++f4cE2/8W9kyuunh0bCbsgUwCuWzW7AwJMl0PNB13jGZbBRLZ+5UGaqPqkv7R2YEoIftX8mQxReOznYdcJHtdCmiTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254547; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=x82aHJMzl8f+PCXWhu2ZX9N8tzch1kuJG+XquT6URF0=; b=Z9QxZzmbwzNBYzjfrVLP/gw69F4ZuRgtMgGaIXq2BK97Nyc5ewECPOafwlQ0RVkNa6Yxnft2KKwY78qq00w2VJFDwOzlW/pCpBA3IOVI9Spsbkiy5FWGeaj5sC+PePB6mPnmrxKpO41zXPzP7UsKLS5a/RS41Gux33mO1y9FydI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254547194690.3054028108068; Thu, 25 Apr 2019 21:55:47 -0700 (PDT) Received: from localhost ([127.0.0.1]:39216 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsti-0007yV-Vs for importer@patchew.org; Fri, 26 Apr 2019 00:55:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmh-0000dG-JA for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsax-0004Mg-3w for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:22 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:40450) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsav-0004Ja-9L for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:18 -0400 Received: by mail-wm1-x342.google.com with SMTP id h11so2330683wmb.5 for ; Thu, 25 Apr 2019 21:36:17 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=x82aHJMzl8f+PCXWhu2ZX9N8tzch1kuJG+XquT6URF0=; b=X/EmV8BnohzDcZAzuZYpw9Fpqq3xw/P9Oow6QaJb5e7+PBkDTcFBODxzk5+KVwD2Tw Utf6tgRDXDY5tEyT2eVXekd/pOe51QNmvLW/pu60xQGnIp5xY6n5qTFKi82tfYw2/Tgf h35I0PKtRIWi99+Bww9QAgnh+bf3wW6ejxUX230Up/Gb14FqxP2WSr/t8uQXZwaQNvBg KUE+2dMsMdullZ6l+miIUcIQHyKQTB6oOxkhUhpNV8wNpu7ZRd4gEYP9TEDxFzHYn6PL 0WdOk1i3OILpjyb0XjHbEzfPjFaGUbrqmN26b1fj5ttzYafpQe7EyeRa93zpi+qd9l5v 76Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=x82aHJMzl8f+PCXWhu2ZX9N8tzch1kuJG+XquT6URF0=; b=A8QpU5hAYUUnXXVHXEY1u4qpYI8z6jmYGgDBLdlEfqmWPXXcWYPPwDCbNHUMsQkQNM CiiQZMuuE+ZR7Y1iX5HJK5KAPTEQPcQt6V093cvxk1GnBqr85q81kjckPNWEqKFyOggb Gz0ZphlNlDfkhmQGXWYiEKL5IW649uIRtY8CvDfOjW3LaLoa1u/9I1dxvAv/d51prxVJ 6qqnu9nNDxYISKe9EPi8VwpEaIeIiaCfwXoHvajlm+M/bXXefpjAPpZvFLdF4otYKMnp a3JkWfLmafbUAq5rPZ2oDpRTIM9iyn9gw6K918Qdc3EX1AfORSgC5YS5j/AD8/AbPKo/ vUug== X-Gm-Message-State: APjAAAWKns/QfV6ifr8rHCYuZHe4JsWjzCZpO9/bT1u46RNUGELgv9x0 f2DVU+nJsiD7BUx1TuWcHzBIMb6d X-Google-Smtp-Source: APXvYqxGZiRKnKcU5bToSN1Hl4A9I9F7jFpeCwG/sFUsWIRbf0c+uT7EjVVbF4SpbAXHuRqASEDRHQ== X-Received: by 2002:a1c:2e8c:: with SMTP id u134mr5996302wmu.146.1556253375826; Thu, 25 Apr 2019 21:36:15 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:42 +0300 Message-Id: <20190426043558.6888-6-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 Subject: [Qemu-devel] [PATCH v7 05/21] gdbstub: Implement continue with signal (C pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 89f1ab6524..469aaeb875 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1532,6 +1532,21 @@ static void handle_continue(GdbCmdContext *gdb_ctx, = void *user_ctx) gdb_continue(gdb_ctx->s); } =20 +static void handle_cont_with_sig(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + unsigned long signal =3D 0; + + if (gdb_ctx->num_params) { + signal =3D gdb_ctx->params[0].val_ul; + } + + gdb_ctx->s->signal =3D gdb_signal_to_target(signal); + if (gdb_ctx->s->signal =3D=3D -1) { + gdb_ctx->s->signal =3D 0; + } + gdb_continue(gdb_ctx->s); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1579,11 +1594,16 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'C': - s->signal =3D gdb_signal_to_target (strtoul(p, (char **)&p, 16)); - if (s->signal =3D=3D -1) - s->signal =3D 0; - gdb_continue(s); - return RS_IDLE; + { + static const GdbCmdParseEntry cont_with_sig_cmd_desc =3D { + .handler =3D handle_cont_with_sig, + .cmd =3D "C", + .cmd_startswith =3D 1, + .schema =3D "l0" + }; + cmd_parser =3D &cont_with_sig_cmd_desc; + } + break; case 'v': if (strncmp(p, "Cont", 4) =3D=3D 0) { p +=3D 4; --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254382; cv=none; d=zoho.com; s=zohoarc; b=MaQXxZwc6dUWHDNIdgpwBnfs0qDdisUIhyB8+S3cB3OVsLJZ3EiZx8wI4DEDCh6wtUPGGuhbwAtdvbNaK0Njgr2ZU9SkyFRkq6ZPOtlVSwtLAbM3W0DlsogiORu3fIQ06sCaW1lRca6vwQWv0vUqO95jtpM9CVwnSjswgNXmd3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254382; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=8aM/3zkgxng0ie4nC212YmQwcdv5GpIX/biWiirdyy8=; b=L9yvh7GThC+Lc6lIC1AmPIrER9FoTtdjvt0vfqOZHPdX9boQoSRH+aRnckmMqrSK9RIskeX/qDQ9/45niNQF/HmBkuVLQx3aPnzKptTpfbqwSyuFT/0AEVgjab+hw8ln6OJ7P73SWce9+HvaBYjCWdQ1Tny0Wn8y6iS4og9/XGk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254382084483.76341030823346; Thu, 25 Apr 2019 21:53:02 -0700 (PDT) Received: from localhost ([127.0.0.1]:39171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsr7-0005Lk-3Z for importer@patchew.org; Fri, 26 Apr 2019 00:53:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmh-0000dE-D7 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb0-0004Ob-U1 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:24 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:33956) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsay-0004Lu-Ut for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:21 -0400 Received: by mail-wr1-x441.google.com with SMTP id v16so47489wrp.1 for ; Thu, 25 Apr 2019 21:36:19 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8aM/3zkgxng0ie4nC212YmQwcdv5GpIX/biWiirdyy8=; b=KGbEXiLPfQg4s5jB4sqLPP82dDGcNOvJV+RW0BP++zjdqT4OB1t3qIx6lWcP5Uis6g Dy9yKW8dICYrklUt41pPMTNCuU+zeMtLcCzUcz0e5rkUd4CgonUy/fW3t/zG2dQ3Cu3s zTJADuOocE7RC1983PVOCsnD7BuE3nMt2TCS8OgLkI+SKiSzD5nOIfEmQEYFgdQNF0Qj tLw5WVXA9tzD5ZAOvsqAWBIJ6DFTb7c1fplz3fVutbtSvfOxttBHxo6LBRXkEC7wSmj9 yG2vNRJ8RJPXk3GVpe2Fg4FY9g+ZQSJusvb3xFUYES3JaptCwZ3DsTL3H+v7zqPPZGE+ 018g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8aM/3zkgxng0ie4nC212YmQwcdv5GpIX/biWiirdyy8=; b=TRgA7pqm2gkUN6kigsgUeggSaoOv4YovdVBb7tR7R8pbA2phrlOd3orgv4K2xZucHH g5Nfjzxg74ntZm4TM35yr3DnxGTH80ZjVz54eM2yp6X+x7Gpjj1zoqBu5KmrzGWD+zSM DTCwFSC1pCEao/7ZWaDDZb7AdNiwqU9m9eoOcHDNi9v4nRQ4+r/fL8X8JoupEbMq5zsE wFPetZyZKBWzKZAQbL7XJKJTPdv9quz60c4/oExbfW4R+3JWRZh4yaChkLDTs0l5l6M3 KgUqEw63GE5FlWe6htq8fn2QJ8rwvd3ejkeWpvtd5vPrSfSwKerIChQ3cAJv7BNxEIjX tlOQ== X-Gm-Message-State: APjAAAU1oq2j6dTCenWTUnJVp0PYUj+Xdc9J7SkdEsguNjP4DkAgBbag y5lUA59O9HfReFqmXBKlUML1wED8 X-Google-Smtp-Source: APXvYqydeYydcqyuKzHlwa6rxkw4O1ZsYKyfstn6LejLsHAd24ZnMma8MUBOSF24nbMglKH0RdXquQ== X-Received: by 2002:a5d:6352:: with SMTP id b18mr13745445wrw.24.1556253377723; Thu, 25 Apr 2019 21:36:17 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:43 +0300 Message-Id: <20190426043558.6888-7-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v7 06/21] gdbstub: Implement set_thread (H pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 79 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 469aaeb875..21cdaf4678 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1547,6 +1547,47 @@ static void handle_cont_with_sig(GdbCmdContext *gdb_= ctx, void *user_ctx) gdb_continue(gdb_ctx->s); } =20 +static void handle_set_thread(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + CPUState *cpu; + + if (gdb_ctx->num_params < 2) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + if (gdb_ctx->params[1].thread_id.kind =3D=3D GDB_READ_THREAD_ERR) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + if (gdb_ctx->params[1].thread_id.kind !=3D GDB_ONE_THREAD) { + put_packet(gdb_ctx->s, "OK"); + return; + } + + cpu =3D gdb_get_cpu(gdb_ctx->s, gdb_ctx->params[1].thread_id.pid, + gdb_ctx->params[1].thread_id.tid); + if (!cpu) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + switch (gdb_ctx->params[0].opcode) { + case 'c': + gdb_ctx->s->c_cpu =3D cpu; + put_packet(gdb_ctx->s, "OK"); + break; + case 'g': + gdb_ctx->s->g_cpu =3D cpu; + put_packet(gdb_ctx->s, "OK"); + break; + default: + put_packet(gdb_ctx->s, "E22"); + break; + } +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1560,7 +1601,6 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) char thread_id[16]; uint8_t *registers; target_ulong addr, len; - GDBThreadIdKind thread_kind; const GdbCmdParseEntry *cmd_parser =3D NULL; =20 trace_gdbstub_io_command(line_buf); @@ -1823,35 +1863,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) put_packet(s, "E22"); break; case 'H': - type =3D *p++; - - thread_kind =3D read_thread_id(p, &p, &pid, &tid); - if (thread_kind =3D=3D GDB_READ_THREAD_ERR) { - put_packet(s, "E22"); - break; - } - - if (thread_kind !=3D GDB_ONE_THREAD) { - put_packet(s, "OK"); - break; - } - cpu =3D gdb_get_cpu(s, pid, tid); - if (cpu =3D=3D NULL) { - put_packet(s, "E22"); - break; - } - switch (type) { - case 'c': - s->c_cpu =3D cpu; - put_packet(s, "OK"); - break; - case 'g': - s->g_cpu =3D cpu; - put_packet(s, "OK"); - break; - default: - put_packet(s, "E22"); - break; + { + static const GdbCmdParseEntry set_thread_cmd_desc =3D { + .handler =3D handle_set_thread, + .cmd =3D "H", + .cmd_startswith =3D 1, + .schema =3D "o.t0" + }; + cmd_parser =3D &set_thread_cmd_desc; } break; case 'T': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254685; cv=none; d=zoho.com; s=zohoarc; b=VC9Cq80TKpl3S1uPYKwy4Du1a0oAjMKWkPQuhZht5Fl8UaDikBpRmFYtz2CMGhGVDYoNiY3qk8hQhQ9jZrzx4myfXzfhXBOotqWKJYSga7t9g+/BlcEk8mygJ6SvWE+XK/4PbPeSjcXB1GVZIU9RVWFW10qg2rl7HJp/DLLAyJg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254685; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=y+n9UknESyjS5ywhVhGmu6RRpXVVQXSmReCo/GVxG50=; b=OLM5wdMdeqczeff24V4/P8SaEGt9dINYPCB7Df9KczMVBAo4qUhzqZT2rQteEN+1mFfsAxevyX8wTR3uteE/hHJRSxrrbRsd4rwgUorD6LRVYlWSBhVf7AUc+Qtz1la18kLos5YKlEmLiEwcySg/EicRLH0fP8IxfvuWqRAaPd4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 155625468597085.2044000410749; Thu, 25 Apr 2019 21:58:05 -0700 (PDT) Received: from localhost ([127.0.0.1]:39249 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsvx-0002Me-T3 for importer@patchew.org; Fri, 26 Apr 2019 00:58:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmg-0000dE-DN for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb0-0004Oe-U6 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:24 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:35593) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsaz-0004NO-0I for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:21 -0400 Received: by mail-wm1-x341.google.com with SMTP id y197so2376521wmd.0 for ; Thu, 25 Apr 2019 21:36:20 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.17 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y+n9UknESyjS5ywhVhGmu6RRpXVVQXSmReCo/GVxG50=; b=qGDYhWj9lBc82LHk4Qri4cyJU0bvMri/6+6D6fXFkAu53qm+vCFAFcBZ1p2RZEFGVO UtNWA0DDm8PemTfiS1QhLQ7RnhIIS5+MD9LUwSH6VLbOB/x98ryfg9uqiOaMSI56CsWj vKKxEqbxQLzr7dsZ0MovmlfMX6V9RFf1Hsvvvj1zZWJvo9q14VkKFElBKrZWOi1/Y7Os bG9NH3JW2qNO+AGbOFnLa4QUkIg4xao9suJ99oo1/4ZQGhndOWN4CeULP3g49MFP1jD4 b0CztFS8+g74eO4oOXCqM+2wneYuRyRzwhO0po6KbWCRgQ/FY5anc2YR1w7IWi5C2Yja zj1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y+n9UknESyjS5ywhVhGmu6RRpXVVQXSmReCo/GVxG50=; b=ielAHswK25R23ooIC9WBkeJHbX+KlX+XLwtFzsz3lgbtTE7LxUSSwkBbdZZ+M5YLBR Hgnn1dinpQZvLAeIgy/G+IjVcJuH6zcUxKmZYXynA0rJnEngHPV2OghmgrexcNRzXNLi x5JDftqBa8+GsnrW9F6uQig4k50XAigLQexlz8ZBuyMRMwDNUBlS24YReEFNGemJPvQX eZSWY1iSR2KsH5kpVvphGz9M0r65Bfk9bpJaYpAc97lRjNXvzedmDsN5oZZ7flMA85d0 j8Cs7PCZZWRNGtAdSKn6MNhtWoIMZ1pV3YrIF6roEupuqMlLRty69pE8GfS9SOSJjPF1 lD+g== X-Gm-Message-State: APjAAAWkEJJTlhHWVYpf27bo6LcZVeox+HJPpEPJt7rVLV1tp6cQi0d5 C52CvabMJhhpGv7adlkkY/2LpBOK X-Google-Smtp-Source: APXvYqwybX5Y8lEgXbq2BwyG2q9Gpr7ghO9UMM50U9/KRbFCw04GoLwRx2WYmT2sBLEjhT3jPzMT9Q== X-Received: by 2002:a05:600c:28b:: with SMTP id 11mr5725252wmk.129.1556253379444; Thu, 25 Apr 2019 21:36:19 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:44 +0300 Message-Id: <20190426043558.6888-8-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 Subject: [Qemu-devel] [PATCH v7 07/21] gdbstub: Implement insert breakpoint (Z pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gdbstub.c b/gdbstub.c index 21cdaf4678..36c7353a22 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1588,6 +1588,29 @@ static void handle_set_thread(GdbCmdContext *gdb_ctx= , void *user_ctx) } } =20 +static void handle_insert_bp(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int res; + + if (gdb_ctx->num_params < 3) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + res =3D gdb_breakpoint_insert(gdb_ctx->params[1].val_ull, + gdb_ctx->params[2].val_ull, + gdb_ctx->params[0].val_ul); + if (res >=3D 0) { + put_packet(gdb_ctx->s, "OK"); + return; + } else if (res =3D=3D -ENOSYS) { + put_packet(gdb_ctx->s, ""); + return; + } + + put_packet(gdb_ctx->s, "E22"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1843,6 +1866,16 @@ static int gdb_handle_packet(GDBState *s, const char= *line_buf) put_packet(s, "OK"); break; case 'Z': + { + static const GdbCmdParseEntry insert_bp_cmd_desc =3D { + .handler =3D handle_insert_bp, + .cmd =3D "Z", + .cmd_startswith =3D 1, + .schema =3D "l?L?L0" + }; + cmd_parser =3D &insert_bp_cmd_desc; + } + break; case 'z': type =3D strtoul(p, (char **)&p, 16); if (*p =3D=3D ',') --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556255135; cv=none; d=zoho.com; s=zohoarc; b=HZlDcD7ySi3+fteGwd4Y4xO7vSAIj49XGdam1bqfYEzb4p6fG86CG94cn8XeAQDln3+QoX2fzq/udpqhVoH880rF0qPVje7gHeyt3M3sQHQW4RFHUYtA85kgWDQbtA/angysGS19PlUELZ+VvhMZzXSsR49ffrEf7lzKEFO5PQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556255135; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=U4fLhEZHxeWF7Ph12MqOmpuk/185Eq0Ogcw/FW+Pwwg=; b=UtgYJ9iMHtTni4iE4Z9RUuyTg0tOClwAAxnkBnJa2sVPQAWZKaWE1PLPYjc5sjFuXgMWE1u+2IVxm65ZIZ5up3Ig69/Rcjb8VIG49e3Sh4dPesz8cOziO3xl/YgUKGdRcUDauU8LsgyPLxJt2EKt2HrmNpuZrfYjK4bH7FmdAVo= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556255135979752.411205893099; Thu, 25 Apr 2019 22:05:35 -0700 (PDT) Received: from localhost ([127.0.0.1]:39370 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJt3C-0001Cv-3z for importer@patchew.org; Fri, 26 Apr 2019 01:05:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmg-0000dG-CG for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb2-0004QU-R0 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:25 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:39837) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsb0-0004O0-T5 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:23 -0400 Received: by mail-wr1-x444.google.com with SMTP id a9so2450279wrp.6 for ; Thu, 25 Apr 2019 21:36:22 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=U4fLhEZHxeWF7Ph12MqOmpuk/185Eq0Ogcw/FW+Pwwg=; b=Dr7LuTEp2/fDoRkLxFMZxphChvNFuBUshR8Fy8eNpE7AxQKfDJJdT2YcTEoNlA2ml+ +cW5z6JRGUT3UgWBSdc9pyJHrb79Y2Tamqc8lBGZoYgaxkZOL3rufHcRgO+OLz7/Xq97 TOBADuVyPPslF5ox3/P7KLRXx1XDzb6+Lk5uqICA4OxnomqBTl//gZvKNQqFUxTUJ/a3 v4cslLh1gkI/91qDk/wNnsSUQJZoBnjbeJrc2SM31YlAvqqds6HWPm2RDhBq6ck14u1o Cd96Qdt6PL49aAWVW7gjlFHJWvDuU9uoorYxs2zRJknCpp+/e/sESYK4pJNh2GrrELm1 1Pjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=U4fLhEZHxeWF7Ph12MqOmpuk/185Eq0Ogcw/FW+Pwwg=; b=rqVlKU6iXp/5o+uDhqxWvNErQmTPImo+68PCu59guAcHIv7/9epeADPxEL39Ekzyok BYR0GVd26yjZVG/YE7qvWuXKgQrPa9J2IUPuE65Qe7gnD0uy1mO9Bile0SAzybMFXAQu NFfKpbwqF3Vxz62uTOLEG4wo/wnrvHjo4+afmAkdeGMtJy9ppBMXCQ/apXiFu+7xaBrL NaRJJmeya8ahz6nfwCwa3JNMJSTAJi9h8LpdVF8p/ZgPUYM0HNzTEz0854HeNc/Cxv4B oTXAILLWLCeBrkA4o6RcgTr8DumZ0XK7RznhLrf4q8mcnXTn+vIPUXX3udTpHtwqJyNN Rf6w== X-Gm-Message-State: APjAAAX5vjCHyXOuuPSrh3F9iuZbJJAFlOhfcMt8+rPm7fSNda3BKkYC 8X8qlcy8CUhsz5NnnKBEydy+m2Es X-Google-Smtp-Source: APXvYqxl15YLF/OFQ2bp8VCORUiQIpV0uUxg6nbtaHPAfZ0PXpyPhI7lRRK39cssODK7tuduJ8aF2A== X-Received: by 2002:adf:8062:: with SMTP id 89mr1807933wrk.107.1556253381069; Thu, 25 Apr 2019 21:36:21 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:45 +0300 Message-Id: <20190426043558.6888-9-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v7 08/21] gdbstub: Implement remove breakpoint (z pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 36c7353a22..b42425b24c 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1611,6 +1611,29 @@ static void handle_insert_bp(GdbCmdContext *gdb_ctx,= void *user_ctx) put_packet(gdb_ctx->s, "E22"); } =20 +static void handle_remove_bp(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int res; + + if (gdb_ctx->num_params < 3) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + res =3D gdb_breakpoint_remove(gdb_ctx->params[1].val_ull, + gdb_ctx->params[2].val_ull, + gdb_ctx->params[0].val_ul); + if (res >=3D 0) { + put_packet(gdb_ctx->s, "OK"); + return; + } else if (res =3D=3D -ENOSYS) { + put_packet(gdb_ctx->s, ""); + return; + } + + put_packet(gdb_ctx->s, "E22"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1877,23 +1900,15 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'z': - type =3D strtoul(p, (char **)&p, 16); - if (*p =3D=3D ',') - p++; - addr =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D ',') - p++; - len =3D strtoull(p, (char **)&p, 16); - if (ch =3D=3D 'Z') - res =3D gdb_breakpoint_insert(addr, len, type); - else - res =3D gdb_breakpoint_remove(addr, len, type); - if (res >=3D 0) - put_packet(s, "OK"); - else if (res =3D=3D -ENOSYS) - put_packet(s, ""); - else - put_packet(s, "E22"); + { + static const GdbCmdParseEntry remove_bp_cmd_desc =3D { + .handler =3D handle_remove_bp, + .cmd =3D "z", + .cmd_startswith =3D 1, + .schema =3D "l?L?L0" + }; + cmd_parser =3D &remove_bp_cmd_desc; + } break; case 'H': { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254551; cv=none; d=zoho.com; s=zohoarc; b=e7Qcv6Zi1dDIOWqhNz531HExClMOLLGJioW9gtRxc2DAY1NZOW/Kxl5WY4Tx9f+Vutd7u/61xdIksJ3ooPTU746ubS0IDhEWr3qxIyalsN85NzIhgqdBluhh0QDJ/rkgeX1qcyYwboMQ1qwne/dzRQRje5oBbY8dXiutCj4WWgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254551; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=6OoH0VZvs5cN/77prjtAmvXUSegJODVLc//0yGYVjjY=; b=LTOWECZXFAct2iailqzNNsV8iii3qMVYr+80GHmc8XTic8oUy4Le88XAlshSWguC9XFF7I/Qzq/hdPC5ezgAc4cfm6jt8N2yZDbp41SKAsg39WnVBfM6x2/rsU0NlPqKvT5K0hfDtEpXyyK/Fd8aiTrPAXvF08WV1u50Ow//o68= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254551685623.7332790266682; Thu, 25 Apr 2019 21:55:51 -0700 (PDT) Received: from localhost ([127.0.0.1]:39211 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsth-0007xC-Kj for importer@patchew.org; Fri, 26 Apr 2019 00:55:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmf-0000dE-E5 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb3-0004Rr-Fl for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:26 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:40707) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsb3-0004Q5-9U for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:25 -0400 Received: by mail-wr1-x444.google.com with SMTP id h4so2438658wre.7 for ; Thu, 25 Apr 2019 21:36:25 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6OoH0VZvs5cN/77prjtAmvXUSegJODVLc//0yGYVjjY=; b=uwg1RQYsgwBPEOxFTvFOaDqh6ZEi2lTBJyr+fRp43kx+QeD/E0S9N4UfiFgLfrL9ty vSLK160mzxUZE6ULWZfQi1sHyAjFGRWkhYQDPKGk+mF3MiirK3XqbVCTSIsUoGOaCISW QixASgsdtwMG0jaIp7ZYtfvwSDvL8JuiCD6gcE8//S3tXhziW2KKzY+Wylsv/UK8kFl/ BdqLYgNlXqnRebdxU4oxO6RuJNNWESfPsBoI73GbhrOB4jelr5nMeOYgab5l9ce5+dcK spajNVfD5cgR/P9HoKY+cYr+BABTYK5avc9x+4q82M8l5ndjzZAHBjq/QxtqMi1W2z+N frZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6OoH0VZvs5cN/77prjtAmvXUSegJODVLc//0yGYVjjY=; b=PqE9AMNPiAkpUtyJuBnEmjuTBTF6WqGTSHvxKC/Djkb4gjvvvXjpudt0NQIqrYmsDZ iFmPxGee4WXgHz0fwFgqfMe/5xc7NJtq83m2BXmUcJ1Jr2ymDwmTEOlUTtStASgfSkho Tj/vlElM+LRATJn34aKJ6nPGmSD1AQAZ9jYwtFavI2UFfFsf23y5ck5r4XTgV9HZjARG VbA3C5cZ+D1bJW814Pcj99KI2tE8cd7Zk+TBYSanJHlRSSxEUThoOrvZejfzvU09BXxT egi2VwPKzBbB+otD8ELZBkUqKYdLsIOM3H6gLjVYcxFkxAjuWb2gF4WJiwM0GrYITqyR eFSg== X-Gm-Message-State: APjAAAV7WNUKxXpOkxzTzid9N6m5ffdI4pZHxNAX/K7YGNkpUJCRSaeT 7OdjOZkaq4lyJRDLWZNoxl7ztV0z X-Google-Smtp-Source: APXvYqyDOwg9VcXu3GWfwvVg4nX+8CwandTAo9p4prMmapUow+j7CPrCT/E5eDL5+I4Q47WPX17Nfg== X-Received: by 2002:adf:ec4e:: with SMTP id w14mr5479137wrn.53.1556253383464; Thu, 25 Apr 2019 21:36:23 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:46 +0300 Message-Id: <20190426043558.6888-10-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v7 09/21] gdbstub: Implement set register (P pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index b42425b24c..10e3f12a68 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1634,6 +1634,27 @@ static void handle_remove_bp(GdbCmdContext *gdb_ctx,= void *user_ctx) put_packet(gdb_ctx->s, "E22"); } =20 +static void handle_set_reg(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int reg_size; + + if (!gdb_has_xml) { + put_packet(gdb_ctx->s, ""); + return; + } + + if (gdb_ctx->num_params < 2) { + put_packet(gdb_ctx->s, ""); + return; + } + + reg_size =3D strlen(gdb_ctx->params[1].data) / 2; + hextomem(gdb_ctx->mem_buf, gdb_ctx->params[1].data, reg_size); + gdb_write_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf, + gdb_ctx->params[0].val_ull); + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1878,15 +1899,15 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'P': - if (!gdb_has_xml) - goto unknown_command; - addr =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D '=3D') - p++; - reg_size =3D strlen(p) / 2; - hextomem(mem_buf, p, reg_size); - gdb_write_register(s->g_cpu, mem_buf, addr); - put_packet(s, "OK"); + { + static const GdbCmdParseEntry set_reg_cmd_desc =3D { + .handler =3D handle_set_reg, + .cmd =3D "P", + .cmd_startswith =3D 1, + .schema =3D "L?s0" + }; + cmd_parser =3D &set_reg_cmd_desc; + } break; case 'Z': { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254985; cv=none; d=zoho.com; s=zohoarc; b=RpxD54oWa28Z6c9UVVqUPpW2Rd7Wbb7EVgozgRM3nKBMAe4PoQrG5IfSLvO0IsiIg1r6NAy3klAMQp5inN58wWCb3Se14bXY6uS6HWfs/Hvgp2jJidMGDLkYJ92DkPRn3JwCWbqk6f4CTMAHZrrdFeavatyx4W9I0mPDqmXzCug= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254985; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=C5wVxSSu9B3yjrVL1kbdSqghY5biwyr5/S2ykkoUubY=; b=c9oVYKyCGD8WgMqPnikg/OspaHL/fk7pzSAqixtM9n3bSVxB8uKy5B/DjjUkEr/OzwappDyCZXn4l1PAOeppasB45jszhW2nNFCr7KxR6AZ/kSuK6DIs1PseAJBaM1SIVUtPX26aG5lKS5RbaDqfBApw+t7xiDhUTIe9tpiolUU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254985891601.0813228555035; Thu, 25 Apr 2019 22:03:05 -0700 (PDT) Received: from localhost ([127.0.0.1]:39332 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJt0o-0007KZ-Pe for importer@patchew.org; Fri, 26 Apr 2019 01:03:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmf-0000dG-Bz for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb6-0004WP-Db for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:29 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:43048) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsb6-0004Vy-7S for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:28 -0400 Received: by mail-wr1-x441.google.com with SMTP id a12so2410826wrq.10 for ; Thu, 25 Apr 2019 21:36:28 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C5wVxSSu9B3yjrVL1kbdSqghY5biwyr5/S2ykkoUubY=; b=kgmoqyCIYRjiJsanjHfvhXOXnK9d/A+YXxNeDoiohUdikM5ponc+AdUmcqfFV0d9Lg wXhed/bbYuy4xwLvftaNx6EnFeVvc6oEnvdPRd3Y7HZX18CN2BpyU1DEw379xd3JMmg1 IGEeYM7fAFj2x4xKY7gKDli7mNC5WktvIZSnrzp85E0/d+pLsP7Kfzna/PhkmnUK2hix gTZf9nP4UFExxdIPi8edUKmRf9ghY3p0ZMKtmYCsJh5Wv/KXWBoZIISCilrogmYfr8hA +jmTPHmVqXHGl2RsJPWyUIakReK9aLJKXhBS4o+cEb1/fUsG3Fgmlk5BG5cJYHsPd2CY /Y1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=C5wVxSSu9B3yjrVL1kbdSqghY5biwyr5/S2ykkoUubY=; b=ucJZAnULqCkGZPcxuPQZo+JvQHJEawa8+fGQLTwH/QPN6EPG/yxLKwY4Q5zANjC5Wg VV33oCAblT6WQtVL5bNUtHU1VSQUVY/tdoskJolsCMgmO3Mh2qXrZhj5lXS1zcm8JrKQ pyARvtnThfgsSd7lGEeN/+JMr9bdj5hLDOzgC42JJA16JnN80n0TAKV/mHIi2LFOkiaU /wSvYKHfdVc4y8l4b2+mlo3bGNvxFgvg5G/RfBCCpPB8BuO6VAqDg7NOJYLL32Mf6bzY JYdiByYM3vSaMwkF+K+11FcltnpetO6s0IdPNB9T0v+5W5d5hMHsjdfTed/JOQPTmwni bDjA== X-Gm-Message-State: APjAAAW9KeNbRIrQajgRYztiP8Z8wnTsuLoSxd2ExeO+pTSwz7UYdGcY FQe2ul9+DVOMMhvlXqqp6+v/SpiU X-Google-Smtp-Source: APXvYqx+6F/TJJBApYN5dKwOVuVNDH6IEpPXTv0lzsS6nGUEOONWZJwyF8rXeknJGbQrgFfAV+oeGQ== X-Received: by 2002:a5d:5542:: with SMTP id g2mr6028705wrw.58.1556253386319; Thu, 25 Apr 2019 21:36:26 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:47 +0300 Message-Id: <20190426043558.6888-11-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v7 10/21] gdbstub: Implement get register (p pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 10e3f12a68..e9a3d0c2bc 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1655,6 +1655,36 @@ static void handle_set_reg(GdbCmdContext *gdb_ctx, v= oid *user_ctx) put_packet(gdb_ctx->s, "OK"); } =20 +static void handle_get_reg(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int reg_size; + + /* + * Older gdb are really dumb, and don't use 'g' if 'p' is avaialable. + * This works, but can be very slow. Anything new enough to + * understand XML also knows how to use this properly. + */ + if (!gdb_has_xml) { + put_packet(gdb_ctx->s, ""); + return; + } + + if (!gdb_ctx->num_params) { + put_packet(gdb_ctx->s, "E14"); + return; + } + + reg_size =3D gdb_read_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf, + gdb_ctx->params[0].val_ull); + if (!reg_size) { + put_packet(gdb_ctx->s, "E14"); + return; + } + + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, reg_size); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1884,18 +1914,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'p': - /* Older gdb are really dumb, and don't use 'g' if 'p' is avaialab= le. - This works, but can be very slow. Anything new enough to - understand XML also knows how to use this properly. */ - if (!gdb_has_xml) - goto unknown_command; - addr =3D strtoull(p, (char **)&p, 16); - reg_size =3D gdb_read_register(s->g_cpu, mem_buf, addr); - if (reg_size) { - memtohex(buf, mem_buf, reg_size); - put_packet(s, buf); - } else { - put_packet(s, "E14"); + { + static const GdbCmdParseEntry get_reg_cmd_desc =3D { + .handler =3D handle_get_reg, + .cmd =3D "p", + .cmd_startswith =3D 1, + .schema =3D "L0" + }; + cmd_parser =3D &get_reg_cmd_desc; } break; case 'P': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254533; cv=none; d=zoho.com; s=zohoarc; b=M/qVgwYRGlQIQ3er1jKgdkEQzkUtHkm0EIQY3msRtdtTw9ls+P1JrnQD7BSLi2h7yyMwAPM0GX+dNpjoQaofnoHknuKVax8OU9wWvQKZdlTQpSZxWYvrZPHfGJisjUOPPNhsJqKtoB8HWvLJSpRYLroXcpc89CC4zcPPjoQI+8M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254533; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=7xWdg5J6VC6HFdEkoiuvTsAB/KgJAJp/2excD9374G8=; b=oqehVK5RS6vzyLLQ2EGRRJsTRfLPH4QNnO8n5Njk88W4xkL4D3qVSkt2WUmNqw+E3rDicK5a2PC9wpqHc26qiGD7UBuJvF+r8vkMK8HHanvvmuZtIXEPwId8NP5w4S9ChxmEG4qf5+D/+9s7YYqUrn5uLWhAB9UisS82QODbdfg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254533491289.4860112803615; Thu, 25 Apr 2019 21:55:33 -0700 (PDT) Received: from localhost ([127.0.0.1]:39190 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJstP-0007XO-7h for importer@patchew.org; Fri, 26 Apr 2019 00:55:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsme-0000dE-B3 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsb9-0004Z9-Fi for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:32 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:37174) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsb9-0004YQ-9b for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:31 -0400 Received: by mail-wr1-x443.google.com with SMTP id r6so2467610wrm.4 for ; Thu, 25 Apr 2019 21:36:31 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7xWdg5J6VC6HFdEkoiuvTsAB/KgJAJp/2excD9374G8=; b=kQG8rNwvX5+JSjdSd7ULxS5P7o8KX15sYOC37obpqWq8Eo17WNd7qZT6PQTJIIcLCi YDFb64zcNqlB8FsBfVNA2k/CLOTTu+wEs5+b8qdYL/nnf9VjvAcWz9CkV+plImk59BPt T6zn4Be4KMAzQrLRveyqxaxqcStg9JDzUyMcyAdhIec8EC0lrCZaSGTYaED4F87QSqr+ TqiJovdJZpwlqY5KcHuXOQM4wt4P4j0KXeURwDVqDM3VrBQEcqBWSfIyHQJrDSB2C5gh +AOSBdz+cCmgo1xiPCYe10Mw1qqPIA+0c83JzcN1inrUBXx80SiZ5Atw/kbkrO2SG5uf tvAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7xWdg5J6VC6HFdEkoiuvTsAB/KgJAJp/2excD9374G8=; b=Qw2swhT6fOfvPT2yQAPVq74VnkmQJunRO6V7o4/x1cT4pXZsqigQu8N0ho6pGZNIr0 IRyc+DZIr/JKQgt0GvFoY4xg0co1ONOL8nnoEwB2IyVaQeGLEvV/86FOqrMtJL0dwQeC 3wNE8sXrGu1e/c0TI5Qh4ACDUnfFQZtdjKbkuluSEcGisJ/8w72EZe3ye7lK6xDYJoq6 kp4CdZw5Vi+26FCb0LNCDDaDVL+x2QI9RZno4CmSuSIgVeiSR87hlyE5SZisCyBbvY36 xPNvwVG6JrojTR5theedxVPp7V8y5iEyhDR6oSoZc03zvsIO8Km0f9xkZ6kHBssevcQi F/jA== X-Gm-Message-State: APjAAAWscQGelzJJ92eIoZ1XsE0lJxc09t/sdQ9r/CaFeYKMCtfoS6xM KsHdusDAEY2peAiKlFycY7d1uC8H X-Google-Smtp-Source: APXvYqyFGUmKiTaEjpdDocJzPC/cygweHiSyXbDHhGf2fqS/TiEbK4E7l/NLcU1kZ+VTXfzXMmjevQ== X-Received: by 2002:a5d:5382:: with SMTP id d2mr17099333wrv.78.1556253389471; Thu, 25 Apr 2019 21:36:29 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:48 +0300 Message-Id: <20190426043558.6888-12-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH v7 11/21] gdbstub: Implement write memory (M pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index e9a3d0c2bc..8dc2e1d507 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1685,6 +1685,31 @@ static void handle_get_reg(GdbCmdContext *gdb_ctx, v= oid *user_ctx) put_packet(gdb_ctx->s, gdb_ctx->str_buf); } =20 +static void handle_write_mem(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (gdb_ctx->num_params < 3) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + /* hextomem() reads 2*len bytes */ + if (gdb_ctx->params[1].val_ull > strlen(gdb_ctx->params[2].data) / 2) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + hextomem(gdb_ctx->mem_buf, gdb_ctx->params[2].data, + gdb_ctx->params[1].val_ull); + if (target_memory_rw_debug(gdb_ctx->s->g_cpu, gdb_ctx->params[0].val_u= ll, + gdb_ctx->mem_buf, + gdb_ctx->params[1].val_ull, true)) { + put_packet(gdb_ctx->s, "E14"); + return; + } + + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1893,24 +1918,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'M': - addr =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D ',') - p++; - len =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D ':') - p++; - - /* hextomem() reads 2*len bytes */ - if (len > strlen(p) / 2) { - put_packet (s, "E22"); - break; - } - hextomem(mem_buf, p, len); - if (target_memory_rw_debug(s->g_cpu, addr, mem_buf, len, - true) !=3D 0) { - put_packet(s, "E14"); - } else { - put_packet(s, "OK"); + { + static const GdbCmdParseEntry write_mem_cmd_desc =3D { + .handler =3D handle_write_mem, + .cmd =3D "M", + .cmd_startswith =3D 1, + .schema =3D "L,L:s0" + }; + cmd_parser =3D &write_mem_cmd_desc; } break; case 'p': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254380; cv=none; d=zoho.com; s=zohoarc; b=Bi9A8ivsVTCfvh+PVv3eoccJv0pjQsy02X/6T6Yx7faHgnl8GVeabSkfEZxbyMjNWn5MaNY+tBRzAmztZJD+LpyW+jyOQCIpZqyTDJ4Wh9ZFDBJFjj8OZKEA889+NQYHGxIA/JgJAqu17bpVb/BWxXpimnHBGzj6uqHGQkqsrB0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254380; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=WRCcpUzuoRAzUaN5uQCeSKLXRQ6/9wuQJBWFZBJ3jI8=; b=ZSoRpQ5T607zi2wutDguYxREcciKq7KrhWuvL+Pstg2u2RiQKGWnQ8uTuWsixLtpYtAztjA2aE4prVrSBLEr4vVJTBu/aDgzMwT41+qDFrc17ZNILyBlObpoP/jXG0dDmGjR+yYCJVvXjc+ZyNjRqr9P3zFxVXjfdLlo+CyJSfs= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254380836678.0658025636997; Thu, 25 Apr 2019 21:53:00 -0700 (PDT) Received: from localhost ([127.0.0.1]:39169 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsr5-0005Jx-RS for importer@patchew.org; Fri, 26 Apr 2019 00:52:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsme-0000dG-Ac for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbC-0004bb-MD for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:35 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:41406) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbC-0004bG-GM for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:34 -0400 Received: by mail-wr1-x443.google.com with SMTP id c12so2425687wrt.8 for ; Thu, 25 Apr 2019 21:36:34 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WRCcpUzuoRAzUaN5uQCeSKLXRQ6/9wuQJBWFZBJ3jI8=; b=vUaSGe+MhCI7l5636Bm8JfibJnq1VOcnhKNBqSPMVPPP4D53QiKe+15sR9DRDo24iM xcH8aie2UA//L/m28rj4WOO6803l4S5FVcvZGMzkl5X2PYxrZvgvQ0kcdpNn1xd9eb3t vYy1Dd4vizlzXfntIo50OsD4QL1b+Ik97w9VBk3qWxyD7cLIKa/AlV/tsbKKXGxjRiWL QqoME/GFyF/k4dJCJflMtAvjMOC0CBlu8a38KsSAiT9rwQTa2V+UgGtMw5NxUcs+YWNW jUEBqFbl64W3zg3ftOOzS+YLa6EKvwVoDuxt2Z7pN+/pnIxY5PYOFju38MqT2X6Ch53T ezvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WRCcpUzuoRAzUaN5uQCeSKLXRQ6/9wuQJBWFZBJ3jI8=; b=S1tZlbkHQTlFS0Z+mqNn9Bv0DY7y1MhcP5qeI2inH4sji3gazaUt6qAQgxVTr6w4/V Eu+LZtbEhzmluFPsueL5wIt2w1F+oIeikHQtaYIPAwejC2vCZa4aLzE+3IC+G3mfzEre vkjmzOlcqOw4OiM/KXe326SbKzLdKhmmIHW+PVbn3+ZqHmlh0ptj7HRHRc+xlNxXfHTA F1pLcE7H1PvWbN6tmd/8C6nPkYMlzjwn4R9Qo7gVzYypJNDSwtMqOu7OKpfJsMHqlB/h gpdCbLlHmS9vFaAjBN1GtcbbykWiZ4srMIc+hoKyi55oOmlGPWrBNBeq+uBRtftXTO5X hUfw== X-Gm-Message-State: APjAAAW7WTDsKtJhHqdR12wrp2oSBeuqmPDHLw7U6VfkzKJB4yJijIUh pG/VTvPM25+CspPRLQ11RiX6yAWO X-Google-Smtp-Source: APXvYqxUmc5v841MWHF4hhQA8hqXvhX2YJjjeDx13MkLjzzwO1XPyXUIJSoIhbv5wD9J7XJms8f8Kg== X-Received: by 2002:a5d:4684:: with SMTP id u4mr5228849wrq.33.1556253392657; Thu, 25 Apr 2019 21:36:32 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:49 +0300 Message-Id: <20190426043558.6888-13-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH v7 12/21] gdbstub: Implement read memory (m pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 8dc2e1d507..daa602edc3 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1710,6 +1710,30 @@ static void handle_write_mem(GdbCmdContext *gdb_ctx,= void *user_ctx) put_packet(gdb_ctx->s, "OK"); } =20 +static void handle_read_mem(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (gdb_ctx->num_params < 2) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + /* memtohex() doubles the required space */ + if (gdb_ctx->params[1].val_ull > MAX_PACKET_LENGTH / 2) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + if (target_memory_rw_debug(gdb_ctx->s->g_cpu, gdb_ctx->params[0].val_u= ll, + gdb_ctx->mem_buf, + gdb_ctx->params[1].val_ull, false)) { + put_packet(gdb_ctx->s, "E14"); + return; + } + + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, gdb_ctx->params[1].val_ul= l); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1899,22 +1923,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) put_packet(s, "OK"); break; case 'm': - addr =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D ',') - p++; - len =3D strtoull(p, NULL, 16); - - /* memtohex() doubles the required space */ - if (len > MAX_PACKET_LENGTH / 2) { - put_packet (s, "E22"); - break; - } - - if (target_memory_rw_debug(s->g_cpu, addr, mem_buf, len, false) != =3D 0) { - put_packet (s, "E14"); - } else { - memtohex(buf, mem_buf, len); - put_packet(s, buf); + { + static const GdbCmdParseEntry read_mem_cmd_desc =3D { + .handler =3D handle_read_mem, + .cmd =3D "m", + .cmd_startswith =3D 1, + .schema =3D "L,L0" + }; + cmd_parser =3D &read_mem_cmd_desc; } break; case 'M': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254365; cv=none; d=zoho.com; s=zohoarc; b=Oc+GsWxIKuOcfGKqQsOOfnMjauFZIGd/SMfh/PA6sl1Jxq1XMy9MJWn03tCjkoU/0zRLohJJCWulnHiZtjqFrPffGH/eA/+Y7L3dx4WaPaeaYqmtQmXuPL89l295rvKoolJzvA0QY/EOINyekgX0JkLcaPMxYV127kMWVVNnceE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254365; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=brvpFyYDw1Z1o2sLMNd/sMXNZo4TYemLFYCJt79OgBg=; b=iKaUCh6LKVEyQyb2cAPdtqWg2o46KvHdG7dggPbAC6VocxdSh036IQY6OupepCtWrIGaLpOmGLTGCiB0WSNcBx14jrNRdDEAGdO9P7ljXprPeo+hOMZQv5vI1S/1YSzmRQbly67bt6v5ASmHjIPTcRgPSRydM+vMzjEWFaLR1pc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254365458160.26120254050488; Thu, 25 Apr 2019 21:52:45 -0700 (PDT) Received: from localhost ([127.0.0.1]:39165 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsqn-00053F-EF for importer@patchew.org; Fri, 26 Apr 2019 00:52:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmc-0000dE-Bq for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbG-0004hO-6t for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:39 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:39838) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbG-0004ff-0X for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:38 -0400 Received: by mail-wr1-x444.google.com with SMTP id a9so2450912wrp.6 for ; Thu, 25 Apr 2019 21:36:37 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=brvpFyYDw1Z1o2sLMNd/sMXNZo4TYemLFYCJt79OgBg=; b=FXTZ8XPVS8D4pT7Cl+s3Qv6byaZMDwBpVhPZgTsGh72pNVfM+xxTBxYu9c/o0gGG6b rpoyn2liujoAXU5N+9jRcCz0YkHKWprYwYt0+VS7BvykmyEoRkU5bsYy28vxMuRrHBx5 7c6mRui8gUJRRwDnLBG7WqxKD0NY9w7C/0bPL55o9aMdBDXMZv2d+sKtEKnjPhp2pz57 ow3DC1hCMN7BCBM8aJQ5aQbmZV299OJ1JVJGp4yhLDCCDXv3c/AirwajsRZ2q1D4yEGj JX0Lgc9796msTOf7VyLADLRaajQdbGPa/L5KUbJjinCIBTWTIhpXjTdvsTqO4rgQ7/H3 C0nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=brvpFyYDw1Z1o2sLMNd/sMXNZo4TYemLFYCJt79OgBg=; b=kX+ODuAvCyCN5lL7kJnO08q/0nfQifyOvUVLTAKvQbeU3vWjPIeWiuuY1iOaH5PguL hueBLqDVvAiPuiddR7bmByxjMnFiZpdDah4rJ2f9Pqkz/oV4CmAb370S6yAOaedgYxLr IyMCiO0RI11uV29cEwpvengrIe9SQVplKNYj3GF90kYBsQvBQ/td6Semzid97w7/SrCR ElWu6nj8szY/Umx5I3kG6vbgiFo3y0CydlMKAiw7fv7OY5CH+v0we7/uLzWvMqgZKrgM zJNR8/3QkxVYdE+xd4+ZHtTUziUOlloj89OlvY2tE4UvDHF8FaGejmXq2TRPqK7lWlED /AMw== X-Gm-Message-State: APjAAAUak/1kGt3XcoUsfMm32W8O1ny58Gd3okQjkMqIyRdTCTe3Y7xW 4WtYXAedqkOQxKmmaf0rkC+xUOJi X-Google-Smtp-Source: APXvYqypD/bXasoSh60qqJm5uUQRcOsU0iDBc6IOBVQYCDPCSdNt/12J9JMDUfLi8MTU+t/FfbEHXA== X-Received: by 2002:adf:e591:: with SMTP id l17mr2252727wrm.238.1556253396328; Thu, 25 Apr 2019 21:36:36 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:50 +0300 Message-Id: <20190426043558.6888-14-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v7 13/21] gdbstub: Implement write all registers (G pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index daa602edc3..adfe39b3a3 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1734,6 +1734,29 @@ static void handle_read_mem(GdbCmdContext *gdb_ctx, = void *user_ctx) put_packet(gdb_ctx->s, gdb_ctx->str_buf); } =20 +static void handle_write_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + target_ulong addr, len; + uint8_t *registers; + int reg_size; + + if (!gdb_ctx->num_params) { + return; + } + + cpu_synchronize_state(gdb_ctx->s->g_cpu); + registers =3D gdb_ctx->mem_buf; + len =3D strlen(gdb_ctx->params[0].data) / 2; + hextomem(registers, gdb_ctx->params[0].data, len); + for (addr =3D 0; addr < gdb_ctx->s->g_cpu->gdb_num_g_regs && len > 0; + addr++) { + reg_size =3D gdb_write_register(gdb_ctx->s->g_cpu, registers, addr= ); + len -=3D reg_size; + registers +=3D reg_size; + } + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1745,7 +1768,6 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; - uint8_t *registers; target_ulong addr, len; const GdbCmdParseEntry *cmd_parser =3D NULL; =20 @@ -1911,16 +1933,15 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) put_packet(s, buf); break; case 'G': - cpu_synchronize_state(s->g_cpu); - registers =3D mem_buf; - len =3D strlen(p) / 2; - hextomem((uint8_t *)registers, p, len); - for (addr =3D 0; addr < s->g_cpu->gdb_num_g_regs && len > 0; addr+= +) { - reg_size =3D gdb_write_register(s->g_cpu, registers, addr); - len -=3D reg_size; - registers +=3D reg_size; + { + static const GdbCmdParseEntry write_all_regs_cmd_desc =3D { + .handler =3D handle_write_all_regs, + .cmd =3D "G", + .cmd_startswith =3D 1, + .schema =3D "s0" + }; + cmd_parser =3D &write_all_regs_cmd_desc; } - put_packet(s, "OK"); break; case 'm': { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254206; cv=none; d=zoho.com; s=zohoarc; b=FOQHtIp4YMD1BN/pvFGmiRj8L8c2AcfF/Hf6yfSjrMUySEKD4cA22351AzaD+oyVbomanrrnrz+W5igy+s8vbIqzDQot4YUWnqGcd00Bl/MxABQwFc5afHKknW0nTyzdarBPIarj6f9a4WCNtH+FX67ppG7TizabqcHDY4tgqfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254206; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=b1bpFqGwMibMAfq1pbDbHkF4Xk3yQKA0SG1CtWad0g4=; b=a3gf5Rf9IkrBmvMHIrAzA5I8walVfq+jlYPFdOwz85T3KOLSb2e69Ucpe4RTNlXrekSlXkPs3JpbCffnCepWREa012d99vFvpYAjUn2wd8OQcvbfPbhfufFVj/7PMAzz5SrR0NCn2LQBxL/tilC5UO+yWZp9rcMiSm2qWTQSsFg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254206145299.7919963110995; Thu, 25 Apr 2019 21:50:06 -0700 (PDT) Received: from localhost ([127.0.0.1]:39102 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsoB-0001ph-Uz for importer@patchew.org; Fri, 26 Apr 2019 00:49:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmG-0000dE-8i for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbJ-0004lK-11 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:41 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:37710) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbI-0004k6-R4 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:40 -0400 Received: by mail-wm1-x344.google.com with SMTP id y5so1351800wma.2 for ; Thu, 25 Apr 2019 21:36:40 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b1bpFqGwMibMAfq1pbDbHkF4Xk3yQKA0SG1CtWad0g4=; b=SF69tbtuEDfg+zVkwn3CyXSc7922uL/xeUTg2YwU2RWtPLiahhSeWdg7vTicTpoF/C lFxvg6MxTz1aqgpaTj+RlrkdR4pj96d+ja1btTuhI4xri/WdAiBTYaVksB90lfYsyREJ pYMZRK532vLySjDfA1ok8oH6wePv7eb7VlNLJuraxhOaPo8PGTSB/HEMx5OakAFBWhV1 gZifn50K8LG6hRMt7s1dfHzN13fVh+hGVC3ABmp83w+buVz8eWfiKGlUMFpL7miTyQnb irU1W1V/D1ah0ExcRFy2wxHKOsQ9qY7Ps+iOAPEZhG1nrn0hs0iULJLJ+OrGKbKEl3sY SAYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b1bpFqGwMibMAfq1pbDbHkF4Xk3yQKA0SG1CtWad0g4=; b=OpdbUNzst2os4Hzpas2y7O2+n/k6EG6Nuw9UPazw3UykTaufn5jsN5l8bYFVG8CJsM HTTwvlKX9vvbBZdQVC3D3yHhlUn8+BZk8ZN3ClBaFLnIHa4ECQCn0rzjCsQsjSHOT8vF VrEGhsJ1ekgzXXKmlSbb09jdpve8+8ImS64QJN/f8Qijr9UtPFt+vf6AsimMRbEwglhn Ksxcwvszj6LXtG+XS1AFPVhVZXEMiLl/MZ/09cueySHhywm7EULBl1K+i6/ZxwJQfZFX uhA4xeBnJrLB8VQROgvlnsNdkTpkUfTh4LlUXvjnFtO1rJVjdtwI/SoaIMPK72Pzy0Xn YRhA== X-Gm-Message-State: APjAAAU9c20FOZHZooQ7J2rpeHTv3E0Ry4MN3m5b7kVymRERyP9X13+8 laatLTXt42UxdXiw5hezvR2CU5g6 X-Google-Smtp-Source: APXvYqzOaBgVLX8/6c8SKgeDQv7EqNAdkemjvAZwCtNWrHPqkDAuRhldM4ZoW3o3pM8xqqdHv5qdFw== X-Received: by 2002:a7b:cd93:: with SMTP id y19mr5830979wmj.113.1556253399095; Thu, 25 Apr 2019 21:36:39 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:51 +0300 Message-Id: <20190426043558.6888-15-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 Subject: [Qemu-devel] [PATCH v7 14/21] gdbstub: Implement read all registers (g pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index adfe39b3a3..3478ac778d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1757,6 +1757,21 @@ static void handle_write_all_regs(GdbCmdContext *gdb= _ctx, void *user_ctx) put_packet(gdb_ctx->s, "OK"); } =20 +static void handle_read_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + target_ulong addr, len; + + cpu_synchronize_state(gdb_ctx->s->g_cpu); + len =3D 0; + for (addr =3D 0; addr < gdb_ctx->s->g_cpu->gdb_num_g_regs; addr++) { + len +=3D gdb_read_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf + l= en, + addr); + } + + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, len); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1764,7 +1779,7 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) CPUClass *cc; const char *p; uint32_t pid, tid; - int ch, reg_size, type, res; + int ch, type, res; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; @@ -1923,14 +1938,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'g': - cpu_synchronize_state(s->g_cpu); - len =3D 0; - for (addr =3D 0; addr < s->g_cpu->gdb_num_g_regs; addr++) { - reg_size =3D gdb_read_register(s->g_cpu, mem_buf + len, addr); - len +=3D reg_size; + { + static const GdbCmdParseEntry read_all_regs_cmd_desc =3D { + .handler =3D handle_read_all_regs, + .cmd =3D "g", + .cmd_startswith =3D 1 + }; + cmd_parser =3D &read_all_regs_cmd_desc; } - memtohex(buf, mem_buf, len); - put_packet(s, buf); break; case 'G': { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254843; cv=none; d=zoho.com; s=zohoarc; b=bOvF3HXAI7xxlFhd5o76assZo1zsnknyOS9qc8iXspgHLF73F1yaQK2nnF7+fj+cUff5wVcqk4GD4kFoh5OhFZMW0jbQsYp8I2WnOEhiTGiHvhRiOaFvDar4eUaJ+lzKAD85p3EVIX+B8BScbANmadQHM1Sxm8N7AX6Pwe8/YDQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254843; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=/kC4Ra5FAbXCGpLaIRgx76fPd1eNM+Za2+9T+4B8JSs=; b=jrwQiMqG7sL7egH1hZ4pZ6hYexkDbB+SbqH/RTumeQ6DvCezjCeBTnUbb7M97u8dSsOfM9nDI86O6eHGCAJFgWopYFxj1m92tT1UTe+axODNDODS5ScBaNSIaM8qdRjDmtI/gOgTdRGZKtCRSg+fVZm53dI952iWV0hBMf1DcoM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254843338467.2130615494116; Thu, 25 Apr 2019 22:00:43 -0700 (PDT) Received: from localhost ([127.0.0.1]:39307 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsyW-0004x3-8i for importer@patchew.org; Fri, 26 Apr 2019 01:00:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmc-0000dG-BY for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbL-0004oQ-R5 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:44 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:55978) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbL-0004nU-Kc for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:43 -0400 Received: by mail-wm1-x344.google.com with SMTP id o25so1976540wmf.5 for ; Thu, 25 Apr 2019 21:36:43 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.39 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/kC4Ra5FAbXCGpLaIRgx76fPd1eNM+Za2+9T+4B8JSs=; b=V1fCA0Bw1g4Dz9vUtQafDvpP7JuDbXhFc3NII9oIvvMmtcoYEBKuE+KmkGBVAVHuoo Zyls/3mCeWTTPOIhdz1HvqJni7ogQu3Pfhv24zapUH+4tjcSR1aFvQoCzafWqquxmozo CgPtN6qpgAzMiziNQZh9IVHPgB19HbRrga6V1/d6galA9Yi9PrDbc1fOYaRe4BNQtAk6 0eedBz6qGs6y820AQFxeJkmYHM5Q/jJzn7qdcH1Foe91hDNbJXIz7gShjarvIaZgFH72 /5ppw7PUdx2xh/977GnZscytTC+9R7XcBr/ChKWW6uyk1MA2a+fFNKIYFwAXPefd/a/U 7TaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/kC4Ra5FAbXCGpLaIRgx76fPd1eNM+Za2+9T+4B8JSs=; b=NabG8ykqLev5ccwiUBGE8NUXAf7F0u74NU56mhcDSl9GcsU7HDZrTxxm9iqYjjUx0q 3K+ItY4FDmFNGMrCkmfzzSv2B1Q9StvpQvuQ5o14bJzKnfmb8TtvUkWWSusRzORTWox6 Q7v8NtLdhDkjbf3IPl6mNy3q4ulBnZeetts2wox7B+qEUzeFsMe7bxlfv1L7MOY4AoRl os1oQQEwYzijkfBri0d/tcW3x+MxV9deHNXzK3BoVIr271P9TaO47TSZs+9OewAYE+wh jujUgluQvZWQNO9qz2sMs9lrNFlcoFoN65/+bf+N0jTJJZtoWDorRsDZprs8w/+Udu5x GKhA== X-Gm-Message-State: APjAAAUD+irlWSkq6tAGrto1ihNN7R7Gek+Pw4ChU4sHNvW+swh2WIuq 66+YG/vLinUaqTbYfjWpzEo+FGoH X-Google-Smtp-Source: APXvYqyVKwdmOpdMPQCkcOfjIZ7TmSxXjCL+f/4OkwfFvPQ9OEPqA1pfBEs9uSMSvzp8Rw20ZkkfHA== X-Received: by 2002:a1c:a00a:: with SMTP id j10mr6071987wme.15.1556253401965; Thu, 25 Apr 2019 21:36:41 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:52 +0300 Message-Id: <20190426043558.6888-16-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 Subject: [Qemu-devel] [PATCH v7 15/21] gdbstub: Implement file io (F pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 62 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 3478ac778d..9fe130f30d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1772,6 +1772,39 @@ static void handle_read_all_regs(GdbCmdContext *gdb_= ctx, void *user_ctx) put_packet(gdb_ctx->s, gdb_ctx->str_buf); } =20 +static void handle_file_io(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int num_syscall_params; + GdbCmdVariant syscall_params[3] =3D {}; + + if (!gdb_ctx->num_params) { + return; + } + + if (cmd_parse_params(gdb_ctx->params[0].data, "L,L,o0", syscall_params, + &num_syscall_params)) { + return; + } + + if (!num_syscall_params) { + return; + } + + if (gdb_ctx->s->current_syscall_cb) { + gdb_ctx->s->current_syscall_cb(gdb_ctx->s->c_cpu, + (target_ulong)syscall_params[0].val= _ull, + (target_ulong)syscall_params[1].val= _ull); + gdb_ctx->s->current_syscall_cb =3D NULL; + } + + if (syscall_params[2].opcode =3D=3D (uint8_t)'C') { + put_packet(gdb_ctx->s, "T02"); + return; + } + + gdb_continue(gdb_ctx->s); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1913,28 +1946,13 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) return RS_IDLE; case 'F': { - target_ulong ret; - target_ulong err; - - ret =3D strtoull(p, (char **)&p, 16); - if (*p =3D=3D ',') { - p++; - err =3D strtoull(p, (char **)&p, 16); - } else { - err =3D 0; - } - if (*p =3D=3D ',') - p++; - type =3D *p; - if (s->current_syscall_cb) { - s->current_syscall_cb(s->c_cpu, ret, err); - s->current_syscall_cb =3D NULL; - } - if (type =3D=3D 'C') { - put_packet(s, "T02"); - } else { - gdb_continue(s); - } + static const GdbCmdParseEntry file_io_cmd_desc =3D { + .handler =3D handle_file_io, + .cmd =3D "F", + .cmd_startswith =3D 1, + .schema =3D "s0" + }; + cmd_parser =3D &file_io_cmd_desc; } break; case 'g': --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254223; cv=none; d=zoho.com; s=zohoarc; b=AHzkFtWeT9NDXxv9aEo9G9dxY/cLoRMxboXX4nzcPc0o4BR9NZjzycwrfN9aBsUfmkTGBg6/FuTtKWOTADBXk65mlPnQ+JRyiia5OeRSFgVp54wJzovxNnIaPrTIlfKeQMjdg1P8CjF3/hZSugqrUxeMSYYHRIXTStan78STOyg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254223; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=EShIhnyclfVo57FnSdW5zX6W2mQ/1wfNmEis7PfWfkY=; b=HdkobIKNx4R5MtcvP/Bqaj51Q/GY39PJ57XiSYnI6LQnPgBv92EtQMoa3fu9h912s57ESYdtTukiJPJBlM/IisCJS8a3eku+8TjCiltjcNiU6SajapgDfvOGXDPUHbjz7g3ksjpsgiLLJzWIHcDdZXlwUkdOGNegQH0NyowuTbY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254223739758.4881705696545; Thu, 25 Apr 2019 21:50:23 -0700 (PDT) Received: from localhost ([127.0.0.1]:39106 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsoU-0002E9-IN for importer@patchew.org; Fri, 26 Apr 2019 00:50:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsma-0000dG-DV for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbO-0004pp-1H for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:46 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:40454) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbN-0004ph-Rg for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:45 -0400 Received: by mail-wm1-x344.google.com with SMTP id h11so2331908wmb.5 for ; Thu, 25 Apr 2019 21:36:45 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EShIhnyclfVo57FnSdW5zX6W2mQ/1wfNmEis7PfWfkY=; b=HNzEwa2Nxqpej16GQ5d2qNjgFjBlQH0uqqIPgcirFaL34jxlcAFZ/bLLU/zT3LDq4u JuYTXWUGL8yTCXyTPLD9WnFyRxSCEgEL2K7w23ZkzwhJ9YdL/n++xMLWoTIr209QVdol 3W2F6jg+7iL45iSxs+4SBW2FoH8D2IdXW5i5awh1P3RcX9Q527ccXw5dlB52gWIGZy/M pyauS1V7RDC3hCum1SenQb9UI9c/ga5eP9RFF1sVR/XGCZlhgOqY49fDktQfYdcWDlpb yjTWR5Cv1ie+udoGodF3VWdef7dPd7isa1d7T7jpA6XOx/jbLIrheP2PCn+V9VcsJniq ZVGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EShIhnyclfVo57FnSdW5zX6W2mQ/1wfNmEis7PfWfkY=; b=CkfHkmLdS5bAJrW2yiqXi3bxc0gNq7DK7IbKF4bn6+T9Cp5IOTiIpBE8tSMQZko4sE 7AKP6frMMWvX+l7UMMMYtdJSGtI2LCOk00t99Ig0Qh3GZhSTPK6VsON6eOM/9P5TJTwp TxcSW2xtFAGlqCxtTZ1OfnupNFFJ2Gh/0H8WWY9IOdjIevkyhNMvCAV5KyFrdR/RAGws CKmegzDQZlvWgiGXFJ0jcP3iAYbHfr23Xo32OaurZggChwVveQhNQGkO5GBdPRRyirly pyqKm81i4pleoXcP1wo1fJDkMb7RIiLcnhf0fV1XVDIunUqii+9oBDgG7WOhCA3zT2/b yTNA== X-Gm-Message-State: APjAAAWtqwHS9qEAhprhR4S4MxUHFD1041QRoJsz8+r2i9cxZPke15pA okuLpQuSZPVamDNrGwx6sPeYrXSz X-Google-Smtp-Source: APXvYqwBLp/t7BAGM6ZRRHdjlu3iJYxA4T1kyxdub4rArJXGfgUbmy5XS7EH4JHyaFaOv8AmHls8Tg== X-Received: by 2002:a1c:1903:: with SMTP id 3mr5959439wmz.103.1556253404373; Thu, 25 Apr 2019 21:36:44 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:53 +0300 Message-Id: <20190426043558.6888-17-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 Subject: [Qemu-devel] [PATCH v7 16/21] gdbstub: Implement step (s pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 9fe130f30d..9b0556f8be 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1805,6 +1805,16 @@ static void handle_file_io(GdbCmdContext *gdb_ctx, v= oid *user_ctx) gdb_continue(gdb_ctx->s); } =20 +static void handle_step(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (gdb_ctx->num_params) { + gdb_set_cpu_pc(gdb_ctx->s, (target_ulong)gdb_ctx->params[0].val_ul= l); + } + + cpu_single_step(gdb_ctx->s->c_cpu, sstep_flags); + gdb_continue(gdb_ctx->s); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1937,13 +1947,16 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 's': - if (*p !=3D '\0') { - addr =3D strtoull(p, (char **)&p, 16); - gdb_set_cpu_pc(s, addr); + { + static const GdbCmdParseEntry step_cmd_desc =3D { + .handler =3D handle_step, + .cmd =3D "s", + .cmd_startswith =3D 1, + .schema =3D "L0" + }; + cmd_parser =3D &step_cmd_desc; } - cpu_single_step(s->c_cpu, sstep_flags); - gdb_continue(s); - return RS_IDLE; + break; case 'F': { static const GdbCmdParseEntry file_io_cmd_desc =3D { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254206; cv=none; d=zoho.com; s=zohoarc; b=U6zlytzuurUk07+Y7hq3shgdsWPgK28/mhP+WCifQAdLAPRIi+KK/VOieddf1oCOqvpeTQpeM63xy9qv+CtIjIdleNUIJ1E696FFLQXeclIono7Jbp1SExjRGfxAHHVxe9/wNRoAzqd/hkysEJUxe5L67RQeMEhdxC+uJ8jXWl8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254206; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=kKebEya2GiWvJfCSlb0vx4oLqKZ12SF6Am+XqCA7M8o=; b=oiwlDfsTNMk4PkTsehSEkVBYJIdmXUD7Bbx/HG4yXUCyxrhCBrb7COogKCLPUuJg35Hb65OI/KY8x5phCYpweX+Y0iDnBegSN1oGr1AdsS1EKtYir2CCxx5yBGxZjJGe2ugZs3uGjC19bWEB5+i3pVhOU9Jw0xo5agGfYk4/usc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254206214861.7756497734072; Thu, 25 Apr 2019 21:50:06 -0700 (PDT) Received: from localhost ([127.0.0.1]:39100 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJso3-0001j6-Pz for importer@patchew.org; Fri, 26 Apr 2019 00:49:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmG-0000dG-DU for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbQ-0004w9-HL for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:49 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:41407) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbQ-0004tm-AY for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:48 -0400 Received: by mail-wr1-x442.google.com with SMTP id c12so2426329wrt.8 for ; Thu, 25 Apr 2019 21:36:48 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kKebEya2GiWvJfCSlb0vx4oLqKZ12SF6Am+XqCA7M8o=; b=JlZ4n1WpFODLSq81e4QfOT9kqk5GGHSTvRCYDIIP9SNXVESXET8lU6++oPTq+YbpmG Di43CkmW6KORChFLgZ2DWRs9sCwhGbgsS8A7Qres+3YvLoVlV1y7bAAxOxA4INzM1zhC GRmpBXHZvq3P5esqDiR7VtX9P6oeAdW63L7OOyQta78Ufk8euitH0yyoFFqOqTBva1vz OfgwQkJmvu7mh9ttNb/BBXQeo0q/xbb5SCdj0jhC3+jkTHPnR62/kUL+i+yAd+sOA67a JUmqw0wJolj/YHMtZchlkMmqd/RTtVH8LbCcbNsYWDPIg01qyMGe4+JvBlfkxYRAHmtG x7Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kKebEya2GiWvJfCSlb0vx4oLqKZ12SF6Am+XqCA7M8o=; b=SIFYnPewSq3WVHsNHfpiQR9mu9yzBDd4Cpczi0Q38vPJT/xMAY6Mhj48sG81aK2HEb TtzVZsx/2G7QC0nzrAPY7iZqTChCSWafh3QjRkxqKLbMWVNwO9RHw5f5obia1aIXXsZ5 hWRCKSKujCs0oO/iE8KGqk5IV0+R7sBxFfakkx4LjyRpsb/o09TAin7BqD2mKJt9tLzu aTNgR2oyQ+qutpk1uRMu5mT596+prWyilyWxivrAz/Q1XECyOwEjT+7cZ0CKdIxaukCh VApRoyrsvTUvkWHxdd4u9irqqV1PdVp8vIS+eQ0b8lMYe5Zs7NhZQ423HmX/WoJ2VrC1 vjBg== X-Gm-Message-State: APjAAAX+6lSMrVPA/ZvMrkdCwj+zK9yeYXff43hjz49xHiaxpfbl4gCS NL4pXlWdsXtE8TR3rKtVsjDoZSW+ X-Google-Smtp-Source: APXvYqxkav1dQsrKH3H1MdJIaTMXAuvYUrLscxe80SRO+xPUgHT/1mgxxrcPIwvn6R5ymRw/mqpNgA== X-Received: by 2002:adf:f64f:: with SMTP id x15mr8689045wrp.202.1556253406489; Thu, 25 Apr 2019 21:36:46 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:54 +0300 Message-Id: <20190426043558.6888-18-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v7 17/21] gdbstub: Implement v commands with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 170 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 110 insertions(+), 60 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 9b0556f8be..d56d0fd235 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1815,6 +1815,106 @@ static void handle_step(GdbCmdContext *gdb_ctx, voi= d *user_ctx) gdb_continue(gdb_ctx->s); } =20 +static void handle_v_cont_query(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + put_packet(gdb_ctx->s, "vCont;c;C;s;S"); +} + +static void handle_v_cont(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int res; + + if (!gdb_ctx->num_params) { + return; + } + + res =3D gdb_handle_vcont(gdb_ctx->s, gdb_ctx->params[0].data); + if ((res =3D=3D -EINVAL) || (res =3D=3D -ERANGE)) { + put_packet(gdb_ctx->s, "E22"); + } else if (res) { + put_packet(gdb_ctx->s, "\0"); + } +} + +static void handle_v_attach(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + GDBProcess *process; + CPUState *cpu; + char thread_id[16]; + + strcpy(gdb_ctx->str_buf, "E22"); + if (!gdb_ctx->num_params) { + goto cleanup; + } + + process =3D gdb_get_process(gdb_ctx->s, gdb_ctx->params[0].val_ul); + if (!process) { + goto cleanup; + } + + cpu =3D get_first_cpu_in_process(gdb_ctx->s, process); + if (!cpu) { + goto cleanup; + } + + process->attached =3D true; + gdb_ctx->s->g_cpu =3D cpu; + gdb_ctx->s->c_cpu =3D cpu; + + gdb_fmt_thread_id(gdb_ctx->s, cpu, thread_id, sizeof(thread_id)); + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "T%02xthread:%s;", + GDB_SIGNAL_TRAP, thread_id); +cleanup: + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +static void handle_v_kill(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + /* Kill the target */ + put_packet(gdb_ctx->s, "OK"); + error_report("QEMU: Terminated via GDBstub"); + exit(0); +} + +static GdbCmdParseEntry gdb_v_commands_table[] =3D { + /* Order is important if has same prefix */ + { + .handler =3D handle_v_cont_query, + .cmd =3D "Cont?", + .cmd_startswith =3D 1 + }, + { + .handler =3D handle_v_cont, + .cmd =3D "Cont", + .cmd_startswith =3D 1, + .schema =3D "s0" + }, + { + .handler =3D handle_v_attach, + .cmd =3D "Attach;", + .cmd_startswith =3D 1, + .schema =3D "l0" + }, + { + .handler =3D handle_v_kill, + .cmd =3D "Kill;", + .cmd_startswith =3D 1 + }, +}; + +static void handle_v_commands(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (!gdb_ctx->num_params) { + return; + } + + if (process_string_cmd(gdb_ctx->s, NULL, gdb_ctx->params[0].data, + gdb_v_commands_table, + ARRAY_SIZE(gdb_v_commands_table))) { + put_packet(gdb_ctx->s, ""); + } +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1822,7 +1922,7 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) CPUClass *cc; const char *p; uint32_t pid, tid; - int ch, type, res; + int ch, type; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; @@ -1871,66 +1971,16 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) } break; case 'v': - if (strncmp(p, "Cont", 4) =3D=3D 0) { - p +=3D 4; - if (*p =3D=3D '?') { - put_packet(s, "vCont;c;C;s;S"); - break; - } - - res =3D gdb_handle_vcont(s, p); - - if (res) { - if ((res =3D=3D -EINVAL) || (res =3D=3D -ERANGE)) { - put_packet(s, "E22"); - break; - } - goto unknown_command; - } - break; - } else if (strncmp(p, "Attach;", 7) =3D=3D 0) { - unsigned long pid; - - p +=3D 7; - - if (qemu_strtoul(p, &p, 16, &pid)) { - put_packet(s, "E22"); - break; - } - - process =3D gdb_get_process(s, pid); - - if (process =3D=3D NULL) { - put_packet(s, "E22"); - break; - } - - cpu =3D get_first_cpu_in_process(s, process); - - if (cpu =3D=3D NULL) { - /* Refuse to attach an empty process */ - put_packet(s, "E22"); - break; - } - - process->attached =3D true; - - s->g_cpu =3D cpu; - s->c_cpu =3D cpu; - - snprintf(buf, sizeof(buf), "T%02xthread:%s;", GDB_SIGNAL_TRAP, - gdb_fmt_thread_id(s, cpu, thread_id, sizeof(thread_id= ))); - - put_packet(s, buf); - break; - } else if (strncmp(p, "Kill;", 5) =3D=3D 0) { - /* Kill the target */ - put_packet(s, "OK"); - error_report("QEMU: Terminated via GDBstub"); - exit(0); - } else { - goto unknown_command; + { + static const GdbCmdParseEntry v_cmd_desc =3D { + .handler =3D handle_v_commands, + .cmd =3D "v", + .cmd_startswith =3D 1, + .schema =3D "s0" + }; + cmd_parser =3D &v_cmd_desc; } + break; case 'k': /* Kill the target */ error_report("QEMU: Terminated via GDBstub"); --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254697; cv=none; d=zoho.com; s=zohoarc; b=E2l4kHiOBhyj74wUMCe2Zgmf/s3xdeH1jLfmkUO0I8LLn8DKf6O7aXIQrF6cFgQKwJT/e3nVNbf7PvF6ULswMatRACg2OlV5rcuyBH1qsOI5hyubu/k8uD0B8QxkqvQHc7ToNlqyXuefw+jAZPLTq45mfPUVYalgkx8Ecmnjylw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254697; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=6XppYMRruE5laPQu4tuOEJD3R2TgHj9UJ0kj9FF2Z0o=; b=MCAOHoXP+PYFnApmBo8IWsGM4JjCOri8nWrjztQNBrBrAMjUHjLTP7NEkxgWtU6v/32TTX+3pNnzJ7kJNxCmZs1Ye5Ms5IVC7OoYCB+0tlhWxUJ/rPc0y7u/843bN/VXNk/By/y+xpXAJvhnvgbCqD/ZYhihk8GUUwaTu8EpR0o= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254697333549.0179068819018; Thu, 25 Apr 2019 21:58:17 -0700 (PDT) Received: from localhost ([127.0.0.1]:39251 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJswA-0002Xe-7C for importer@patchew.org; Fri, 26 Apr 2019 00:58:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmU-0000dE-Ol for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbV-00051a-V5 for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:55 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:33960) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbV-0004yY-KG for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:53 -0400 Received: by mail-wr1-x442.google.com with SMTP id v16so48715wrp.1 for ; Thu, 25 Apr 2019 21:36:50 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6XppYMRruE5laPQu4tuOEJD3R2TgHj9UJ0kj9FF2Z0o=; b=jMXsBnl+4g9ieIMeI1wF6yCnGHkButhGSRgzUCs1ac3irgzEgQVyJD+ahFRnZSMEXE EXOoEN5DZNrv62j0CGkJjtK1qxnSi2ozvbaOxPFsLUfE3X0dDj3Wts/gKakP9E66CqsH zdDW8peeg8XpRYtRXiXnVp7Lu2slUqje5nbBFhUxM3tWXPQWwgDGAFVkiPfERv4tnOjA grZ+3G0+7OlWx7ZbRq4bQUokRHNKQhxdsfJ+VNusWAu8inNV8L035sBFqoAdWC9Bu/zF p/bfpB+GZa+aD5BJDY4nyuX7mWiHDEjHCXCmXEp3R4T31XYDInPI4Atn2vAjxrSs7G8k KERA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6XppYMRruE5laPQu4tuOEJD3R2TgHj9UJ0kj9FF2Z0o=; b=qwXmFEHe71N9vsA5vMWfi6NwwThWsYBYghmuhvQPvO1SGhiJOekzjAweeWvSgu9Ghb qR3OEsQqDzYmSvgErEkbJWDRhaOvP+ech8raqbwuGzDXhDeT6sw4Q8yC8xK7/DxCHQN+ t+SbMj2N1/z8E+fzGo2iB2UDmU1JLTBwI2MqvKGMclPWs/0hKzuvnHEEYd5B6XRTuTwb uVj7Bc3n6pfalH8PR2gqOgN/YtvX9L/vzx/BuSBB4EMtb+O2qYcZ9D4IJjT+pHxfST+p JfznVSKUHx65O3XD2ywt7lRfdzu86HWsJhrC9B11O+L5SQOMHqbrCxuO12/8PkXn0Ube V0Hg== X-Gm-Message-State: APjAAAWVZnv0kT5qD24yJWsspkQagTiAR575uwEqgLnkRevTrSID0Qlp vG0J7OH/sPzyvWYW7XEB5RlFNWu/ X-Google-Smtp-Source: APXvYqzHrX3GsopZlujSXtz6MwB9UnqchUMgsG8IBCrXpFQZD6ugmkoW58zYcNR8AMUOdua9aXDBjg== X-Received: by 2002:a05:6000:104:: with SMTP id o4mr901979wrx.106.1556253408737; Thu, 25 Apr 2019 21:36:48 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:55 +0300 Message-Id: <20190426043558.6888-19-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v7 18/21] gdbstub: Implement generic query (q pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 327 insertions(+) diff --git a/gdbstub.c b/gdbstub.c index d56d0fd235..83ae8738cc 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1915,6 +1915,323 @@ static void handle_v_commands(GdbCmdContext *gdb_ct= x, void *user_ctx) } } =20 +static void handle_query_qemu_sstepbits(GdbCmdContext *gdb_ctx, void *user= _ctx) +{ + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), + "ENABLE=3D%x,NOIRQ=3D%x,NOTIMER=3D%x", SSTEP_ENABLE, + SSTEP_NOIRQ, SSTEP_NOTIMER); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +static void handle_set_qemu_sstep(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (!gdb_ctx->num_params) { + return; + } + + sstep_flags =3D gdb_ctx->params[0].val_ul; + put_packet(gdb_ctx->s, "OK"); +} + +static void handle_query_qemu_sstep(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "0x%x", sstep_fla= gs); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +static void handle_query_curr_tid(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + CPUState *cpu; + GDBProcess *process; + char thread_id[16]; + + /* + * "Current thread" remains vague in the spec, so always return + * the first thread of the current process (gdb returns the + * first thread). + */ + process =3D gdb_get_cpu_process(gdb_ctx->s, gdb_ctx->s->g_cpu); + cpu =3D get_first_cpu_in_process(gdb_ctx->s, process); + gdb_fmt_thread_id(gdb_ctx->s, cpu, thread_id, sizeof(thread_id)); + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "QC%s", thread_id= ); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +static void handle_query_threads(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + char thread_id[16]; + + if (!gdb_ctx->s->query_cpu) { + put_packet(gdb_ctx->s, "l"); + return; + } + + gdb_fmt_thread_id(gdb_ctx->s, gdb_ctx->s->query_cpu, thread_id, + sizeof(thread_id)); + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "m%s", thread_id); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); + gdb_ctx->s->query_cpu =3D + gdb_next_attached_cpu(gdb_ctx->s, gdb_ctx->s->query_cpu); +} + +static void handle_query_first_threads(GdbCmdContext *gdb_ctx, void *user_= ctx) +{ + gdb_ctx->s->query_cpu =3D gdb_first_attached_cpu(gdb_ctx->s); + handle_query_threads(gdb_ctx, user_ctx); +} + +static void handle_query_thread_extra(GdbCmdContext *gdb_ctx, void *user_c= tx) +{ + CPUState *cpu; + int len; + + if (!gdb_ctx->num_params || + gdb_ctx->params[0].thread_id.kind =3D=3D GDB_READ_THREAD_ERR) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + cpu =3D gdb_get_cpu(gdb_ctx->s, gdb_ctx->params[0].thread_id.pid, + gdb_ctx->params[0].thread_id.tid); + if (!cpu) { + return; + } + + cpu_synchronize_state(cpu); + + if (gdb_ctx->s->multiprocess && (gdb_ctx->s->process_num > 1)) { + /* Print the CPU model and name in multiprocess mode */ + ObjectClass *oc =3D object_get_class(OBJECT(cpu)); + const char *cpu_model =3D object_class_get_name(oc); + char *cpu_name =3D object_get_canonical_path_component(OBJECT(cpu)= ); + len =3D snprintf((char *)gdb_ctx->mem_buf, sizeof(gdb_ctx->str_buf= ) / 2, + "%s %s [%s]", cpu_model, cpu_name, + cpu->halted ? "halted " : "running"); + g_free(cpu_name); + } else { + /* memtohex() doubles the required space */ + len =3D snprintf((char *)gdb_ctx->mem_buf, sizeof(gdb_ctx->str_buf= ) / 2, + "CPU#%d [%s]", cpu->cpu_index, + cpu->halted ? "halted " : "running"); + } + trace_gdbstub_op_extra_info((char *)gdb_ctx->mem_buf); + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, len); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +#ifdef CONFIG_USER_ONLY +static void handle_query_offsets(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + TaskState *ts; + + ts =3D gdb_ctx->s->c_cpu->opaque; + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), + "Text=3D" TARGET_ABI_FMT_lx ";Data=3D" TARGET_ABI_FMT_lx + ";Bss=3D" TARGET_ABI_FMT_lx, + ts->info->code_offset, + ts->info->data_offset, + ts->info->data_offset); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} +#else +static void handle_query_rcmd(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int len; + + if (!gdb_ctx->num_params) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + len =3D strlen(gdb_ctx->params[0].data); + if (len % 2) { + put_packet(gdb_ctx->s, "E01"); + return; + } + + len =3D len / 2; + hextomem(gdb_ctx->mem_buf, gdb_ctx->params[0].data, len); + gdb_ctx->mem_buf[len++] =3D 0; + qemu_chr_be_write(gdb_ctx->s->mon_chr, gdb_ctx->mem_buf, len); + put_packet(gdb_ctx->s, "OK"); + +} +#endif + +static void handle_query_supported(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + CPUClass *cc; + + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "PacketSize=3D%x", + MAX_PACKET_LENGTH); + cc =3D CPU_GET_CLASS(first_cpu); + if (cc->gdb_core_xml_file) { + pstrcat(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), + ";qXfer:features:read+"); + } + + if (gdb_ctx->num_params && + strstr(gdb_ctx->params[0].data, "multiprocess+")) { + gdb_ctx->s->multiprocess =3D true; + } + + pstrcat(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), ";multiprocess+"); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + +static void handle_query_xfer_features(GdbCmdContext *gdb_ctx, void *user_= ctx) +{ + GDBProcess *process; + CPUClass *cc; + unsigned long len, total_len, addr; + const char *xml; + const char *p; + + if (gdb_ctx->num_params < 3) { + put_packet(gdb_ctx->s, "E22"); + return; + } + + process =3D gdb_get_cpu_process(gdb_ctx->s, gdb_ctx->s->g_cpu); + cc =3D CPU_GET_CLASS(gdb_ctx->s->g_cpu); + if (!cc->gdb_core_xml_file) { + put_packet(gdb_ctx->s, ""); + return; + } + + gdb_has_xml =3D true; + p =3D gdb_ctx->params[0].data; + xml =3D get_feature_xml(gdb_ctx->s, p, &p, process); + if (!xml) { + put_packet(gdb_ctx->s, "E00"); + return; + } + + addr =3D gdb_ctx->params[1].val_ul; + len =3D gdb_ctx->params[2].val_ul; + total_len =3D strlen(xml); + if (addr > total_len) { + put_packet(gdb_ctx->s, "E00"); + return; + } + + if (len > (MAX_PACKET_LENGTH - 5) / 2) { + len =3D (MAX_PACKET_LENGTH - 5) / 2; + } + + if (len < total_len - addr) { + gdb_ctx->str_buf[0] =3D 'm'; + len =3D memtox(gdb_ctx->str_buf + 1, xml + addr, len); + } else { + gdb_ctx->str_buf[0] =3D 'l'; + len =3D memtox(gdb_ctx->str_buf + 1, xml + addr, total_len - addr); + } + + put_packet_binary(gdb_ctx->s, gdb_ctx->str_buf, len + 1, true); +} + +static void handle_query_attached(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + put_packet(gdb_ctx->s, GDB_ATTACHED); +} + +static GdbCmdParseEntry gdb_gen_query_set_common_table[] =3D { + /* Order is important if has same prefix */ + { + .handler =3D handle_query_qemu_sstepbits, + .cmd =3D "qemu.sstepbits", + }, + { + .handler =3D handle_query_qemu_sstep, + .cmd =3D "qemu.sstep", + }, + { + .handler =3D handle_set_qemu_sstep, + .cmd =3D "qemu.sstep=3D", + .cmd_startswith =3D 1, + .schema =3D "l0" + }, +}; + +static GdbCmdParseEntry gdb_gen_query_table[] =3D { + { + .handler =3D handle_query_curr_tid, + .cmd =3D "C", + }, + { + .handler =3D handle_query_threads, + .cmd =3D "sThreadInfo", + }, + { + .handler =3D handle_query_first_threads, + .cmd =3D "fThreadInfo", + }, + { + .handler =3D handle_query_thread_extra, + .cmd =3D "ThreadExtraInfo,", + .cmd_startswith =3D 1, + .schema =3D "t0" + }, +#ifdef CONFIG_USER_ONLY + { + .handler =3D handle_query_offsets, + .cmd =3D "Offsets", + }, +#else + { + .handler =3D handle_query_rcmd, + .cmd =3D "Rcmd,", + .cmd_startswith =3D 1, + .schema =3D "s0" + }, +#endif + { + .handler =3D handle_query_supported, + .cmd =3D "Supported:", + .cmd_startswith =3D 1, + .schema =3D "s0" + }, + { + .handler =3D handle_query_supported, + .cmd =3D "Supported", + .schema =3D "s0" + }, + { + .handler =3D handle_query_xfer_features, + .cmd =3D "Xfer:features:read:", + .cmd_startswith =3D 1, + .schema =3D "s:l,l0" + }, + { + .handler =3D handle_query_attached, + .cmd =3D "Attached:", + .cmd_startswith =3D 1 + }, + { + .handler =3D handle_query_attached, + .cmd =3D "Attached", + }, +}; + +static void handle_gen_query(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (!gdb_ctx->num_params) { + return; + } + + if (!process_string_cmd(gdb_ctx->s, NULL, gdb_ctx->params[0].data, + gdb_gen_query_set_common_table, + ARRAY_SIZE(gdb_gen_query_set_common_table))) { + return; + } + + if (process_string_cmd(gdb_ctx->s, NULL, gdb_ctx->params[0].data, + gdb_gen_query_table, + ARRAY_SIZE(gdb_gen_query_table))) { + put_packet(gdb_ctx->s, ""); + } +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -2128,6 +2445,16 @@ static int gdb_handle_packet(GDBState *s, const char= *line_buf) } break; case 'q': + { + static const GdbCmdParseEntry gen_query_cmd_desc =3D { + .handler =3D handle_gen_query, + .cmd =3D "q", + .cmd_startswith =3D 1, + .schema =3D "s0" + }; + cmd_parser =3D &gen_query_cmd_desc; + } + break; case 'Q': /* parse any 'q' packets here */ if (!strcmp(p,"qemu.sstepbits")) { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254538; cv=none; d=zoho.com; s=zohoarc; b=n3kRfXzoo4IMSOSvEH1RMHqifWCIROneYY25LUOaNVO8o6V6DMr9dAkEzjAN1GX8V7HhkgfDU7NoCG/Tnc+HqQhX8sa56XHAsOeEtUCOizzcWWkM8Rv5H+MP3wNZ9yMvzCd5IDARerr+kd3WCmzGpS+UAfVjKhnQqtZSU7c1wFc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254538; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=9rzWu4duvgFxDEBnKAIuNQA/7quDWlJb65aR2J7JxiI=; b=I/NK4yoj5BFFTEcHcIG9q2qHmcFKvfUGjiWBnByetRFhgakxxwHSiRBVf/+xHK1L/Qgo8E2OIEvaX9pLaPWnIcDFBKh2BrfhjClz3BZA0YlJp+UQtZRnJB3D+PNYC9/UAY05wwZ5HjJuqcRQL/S1k0eoLzNmMrFhiG3o6eEEwdg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254538119194.8384740651012; Thu, 25 Apr 2019 21:55:38 -0700 (PDT) Received: from localhost ([127.0.0.1]:39192 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJstV-0007eO-1W for importer@patchew.org; Fri, 26 Apr 2019 00:55:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmQ-0000dG-Ls for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbV-00051f-Vb for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:55 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:55978) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbV-000500-KW for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:53 -0400 Received: by mail-wm1-x342.google.com with SMTP id o25so1976920wmf.5 for ; Thu, 25 Apr 2019 21:36:52 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9rzWu4duvgFxDEBnKAIuNQA/7quDWlJb65aR2J7JxiI=; b=RfWqfyN/Cw7pOgOhJ/VJ07jo2awjYfHJZ1SJdCxvaOfilMh7iKmJA3zEidiBwH2K7l DDokAraT/ykto/txQIn27XiLRh3LmTp6J6Zrd05ubejeclwPBCSC71FLNvAkpA8YbfjC HB/dwEsFZw0ZUFuhmoWHnxez3sZ/j+xBYkNZqvsG9yjEdpHkfI7fIYWE47Fv2l4EsgYy h4Uaw9/d7pjxVddGFNQyR7wQscYtERvaUnM78vTg5/vHX1pBZN7Jx40YYvWAKPBcaVMl Cj13eUjPJ4n+OeJAbv+GRngqVW/naJGIAakF0oIpCSErF35r/u3RnZ/dONrSELO+x0xU dYLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9rzWu4duvgFxDEBnKAIuNQA/7quDWlJb65aR2J7JxiI=; b=sGETZ5yOD78hKbiv0C6SZmL6KNwkJ+MMR6akgcUXmFpmHgkeh15vXr7COtT5tDpJ7O MNfMWK9S8Vn2stijk9vF++zcaeXQdiUnIaRF7BdkOP38D5sMe9MUemq4EQ6HULDg7L5n FdP5LHKcMp0ulfyK8ftVFhfw6A5lhgWypIESt1x3taS3gZ3DtFr72YOiQbnK9E/fv4Zi kh+1r2DzW4wLNJrzwTW4eFtnvyQ/uoKJ/dwn7BnturwSYVHkI1ol9a5/6H/eGeG4sNM0 qKynLV3cNwksvfB5qd8TZh95KtWMbJmumPKzE8ScvYcggft0VaFWUM1V9zX3EuaxaLoc Y7hQ== X-Gm-Message-State: APjAAAUMofQ8kZETNs4I/V9gp2CmdfEu19IUrh1G1bBbfUGI7HK8reYm YnGjpWfXh2iZkWRsW/hhCuypylrS X-Google-Smtp-Source: APXvYqxLcg57tph2cT0oxYCCYdu9XwBkgHtNQHh+glHXPLyNxgmKqfX+3A4FGey6Qq8TPQr7hgPEPg== X-Received: by 2002:a05:600c:d7:: with SMTP id u23mr6411802wmm.30.1556253410716; Thu, 25 Apr 2019 21:36:50 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:56 +0300 Message-Id: <20190426043558.6888-20-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 Subject: [Qemu-devel] [PATCH v7 19/21] gdbstub: Implement generic set (Q pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 213 +++++++----------------------------------------------- 1 file changed, 25 insertions(+), 188 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 83ae8738cc..2fd0d66f4d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1130,14 +1130,6 @@ static GDBThreadIdKind read_thread_id(const char *bu= f, const char **end_buf, return GDB_ONE_THREAD; } =20 -static int is_query_packet(const char *p, const char *query, char separato= r) -{ - unsigned int query_len =3D strlen(query); - - return strncmp(p, query, query_len) =3D=3D 0 && - (p[query_len] =3D=3D '\0' || p[query_len] =3D=3D separator); -} - /** * gdb_handle_vcont - Parses and handles a vCont packet. * returns -ENOTSUP if a command is unsupported, -EINVAL or -ERANGE if the= re is @@ -2232,18 +2224,28 @@ static void handle_gen_query(GdbCmdContext *gdb_ctx= , void *user_ctx) } } =20 +static void handle_gen_set(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + if (!gdb_ctx->num_params) { + return; + } + + if (!process_string_cmd(gdb_ctx->s, NULL, gdb_ctx->params[0].data, + gdb_gen_query_set_common_table, + ARRAY_SIZE(gdb_gen_query_set_common_table))) { + return; + } + + put_packet(gdb_ctx->s, ""); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { - CPUState *cpu; - GDBProcess *process; - CPUClass *cc; const char *p; - uint32_t pid, tid; - int ch, type; + int ch; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; - target_ulong addr, len; const GdbCmdParseEntry *cmd_parser =3D NULL; =20 trace_gdbstub_io_command(line_buf); @@ -2456,182 +2458,17 @@ static int gdb_handle_packet(GDBState *s, const ch= ar *line_buf) } break; case 'Q': - /* parse any 'q' packets here */ - if (!strcmp(p,"qemu.sstepbits")) { - /* Query Breakpoint bit definitions */ - snprintf(buf, sizeof(buf), "ENABLE=3D%x,NOIRQ=3D%x,NOTIMER=3D%= x", - SSTEP_ENABLE, - SSTEP_NOIRQ, - SSTEP_NOTIMER); - put_packet(s, buf); - break; - } else if (is_query_packet(p, "qemu.sstep", '=3D')) { - /* Display or change the sstep_flags */ - p +=3D 10; - if (*p !=3D '=3D') { - /* Display current setting */ - snprintf(buf, sizeof(buf), "0x%x", sstep_flags); - put_packet(s, buf); - break; - } - p++; - type =3D strtoul(p, (char **)&p, 16); - sstep_flags =3D type; - put_packet(s, "OK"); - break; - } else if (strcmp(p,"C") =3D=3D 0) { - /* - * "Current thread" remains vague in the spec, so always return - * the first thread of the current process (gdb returns the - * first thread). - */ - cpu =3D get_first_cpu_in_process(s, gdb_get_cpu_process(s, s->= g_cpu)); - snprintf(buf, sizeof(buf), "QC%s", - gdb_fmt_thread_id(s, cpu, thread_id, sizeof(thread_id= ))); - put_packet(s, buf); - break; - } else if (strcmp(p,"fThreadInfo") =3D=3D 0) { - s->query_cpu =3D gdb_first_attached_cpu(s); - goto report_cpuinfo; - } else if (strcmp(p,"sThreadInfo") =3D=3D 0) { - report_cpuinfo: - if (s->query_cpu) { - snprintf(buf, sizeof(buf), "m%s", - gdb_fmt_thread_id(s, s->query_cpu, - thread_id, sizeof(thread_id))); - put_packet(s, buf); - s->query_cpu =3D gdb_next_attached_cpu(s, s->query_cpu); - } else - put_packet(s, "l"); - break; - } else if (strncmp(p,"ThreadExtraInfo,", 16) =3D=3D 0) { - if (read_thread_id(p + 16, &p, &pid, &tid) =3D=3D GDB_READ_THR= EAD_ERR) { - put_packet(s, "E22"); - break; - } - cpu =3D gdb_get_cpu(s, pid, tid); - if (cpu !=3D NULL) { - cpu_synchronize_state(cpu); - - if (s->multiprocess && (s->process_num > 1)) { - /* Print the CPU model and name in multiprocess mode */ - ObjectClass *oc =3D object_get_class(OBJECT(cpu)); - const char *cpu_model =3D object_class_get_name(oc); - char *cpu_name =3D - object_get_canonical_path_component(OBJECT(cpu)); - len =3D snprintf((char *)mem_buf, sizeof(buf) / 2, - "%s %s [%s]", cpu_model, cpu_name, - cpu->halted ? "halted " : "running"); - g_free(cpu_name); - } else { - /* memtohex() doubles the required space */ - len =3D snprintf((char *)mem_buf, sizeof(buf) / 2, - "CPU#%d [%s]", cpu->cpu_index, - cpu->halted ? "halted " : "running"); - } - trace_gdbstub_op_extra_info((char *)mem_buf); - memtohex(buf, mem_buf, len); - put_packet(s, buf); - } - break; - } -#ifdef CONFIG_USER_ONLY - else if (strcmp(p, "Offsets") =3D=3D 0) { - TaskState *ts =3D s->c_cpu->opaque; - - snprintf(buf, sizeof(buf), - "Text=3D" TARGET_ABI_FMT_lx ";Data=3D" TARGET_ABI_FMT= _lx - ";Bss=3D" TARGET_ABI_FMT_lx, - ts->info->code_offset, - ts->info->data_offset, - ts->info->data_offset); - put_packet(s, buf); - break; - } -#else /* !CONFIG_USER_ONLY */ - else if (strncmp(p, "Rcmd,", 5) =3D=3D 0) { - int len =3D strlen(p + 5); - - if ((len % 2) !=3D 0) { - put_packet(s, "E01"); - break; - } - len =3D len / 2; - hextomem(mem_buf, p + 5, len); - mem_buf[len++] =3D 0; - qemu_chr_be_write(s->mon_chr, mem_buf, len); - put_packet(s, "OK"); - break; - } -#endif /* !CONFIG_USER_ONLY */ - if (is_query_packet(p, "Supported", ':')) { - snprintf(buf, sizeof(buf), "PacketSize=3D%x", MAX_PACKET_LENGT= H); - cc =3D CPU_GET_CLASS(first_cpu); - if (cc->gdb_core_xml_file !=3D NULL) { - pstrcat(buf, sizeof(buf), ";qXfer:features:read+"); - } - - if (strstr(p, "multiprocess+")) { - s->multiprocess =3D true; - } - pstrcat(buf, sizeof(buf), ";multiprocess+"); - - put_packet(s, buf); - break; - } - if (strncmp(p, "Xfer:features:read:", 19) =3D=3D 0) { - const char *xml; - target_ulong total_len; - - process =3D gdb_get_cpu_process(s, s->g_cpu); - cc =3D CPU_GET_CLASS(s->g_cpu); - if (cc->gdb_core_xml_file =3D=3D NULL) { - goto unknown_command; - } - - gdb_has_xml =3D true; - p +=3D 19; - xml =3D get_feature_xml(s, p, &p, process); - if (!xml) { - snprintf(buf, sizeof(buf), "E00"); - put_packet(s, buf); - break; - } - - if (*p =3D=3D ':') - p++; - addr =3D strtoul(p, (char **)&p, 16); - if (*p =3D=3D ',') - p++; - len =3D strtoul(p, (char **)&p, 16); - - total_len =3D strlen(xml); - if (addr > total_len) { - snprintf(buf, sizeof(buf), "E00"); - put_packet(s, buf); - break; - } - if (len > (MAX_PACKET_LENGTH - 5) / 2) - len =3D (MAX_PACKET_LENGTH - 5) / 2; - if (len < total_len - addr) { - buf[0] =3D 'm'; - len =3D memtox(buf + 1, xml + addr, len); - } else { - buf[0] =3D 'l'; - len =3D memtox(buf + 1, xml + addr, total_len - addr); - } - put_packet_binary(s, buf, len + 1, true); - break; - } - if (is_query_packet(p, "Attached", ':')) { - put_packet(s, GDB_ATTACHED); - break; + { + static const GdbCmdParseEntry gen_set_cmd_desc =3D { + .handler =3D handle_gen_set, + .cmd =3D "Q", + .cmd_startswith =3D 1, + .schema =3D "s0" + }; + cmd_parser =3D &gen_set_cmd_desc; } - /* Unrecognised 'q' command. */ - goto unknown_command; - + break; default: - unknown_command: /* put empty packet */ buf[0] =3D '\0'; put_packet(s, buf); --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254219; cv=none; d=zoho.com; s=zohoarc; b=IpJ12S6BOxH7QQVy0hiiTTbm1tKhtIZfc1JneQfzTBQj/g203lRBbC2xF4zPfRDK3ss69siiHYkQCn1UhnKeKE4FIiCufv2aomcjnV4EsPXSN400yBP/7oJWiMJQh1LZ+nlI7pXCP2rxzcZ02MDwGm83yCjlYZ4wEN7BpkYaxwk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254219; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=NvRXYl/vjqrIbJL0BHzsmEe5eGi5MjJ6JeUBkCbtEUs=; b=CbNAzlapDwyp4+odcPr9wQHWVG5pJY7qO0k5sYn91gmT3curVHMyg0oTPl/QtmxfRXjyVRF8q+j7FAWUOdftKSPIs24qnM2mRIOhMSgT70wdHwetuJBY/hazC1jMleTsbr02K4J3ZjJ5f41VN1JdNH9T1vbSje3Kq/oh9bvKe7E= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254219340427.53870951680017; Thu, 25 Apr 2019 21:50:19 -0700 (PDT) Received: from localhost ([127.0.0.1]:39104 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsoR-00025E-AS for importer@patchew.org; Fri, 26 Apr 2019 00:50:15 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmS-0000dE-Ss for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbW-00051t-5E for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:55 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:37711) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbV-00050J-VC for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:54 -0400 Received: by mail-wm1-x343.google.com with SMTP id y5so1352434wma.2 for ; Thu, 25 Apr 2019 21:36:53 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NvRXYl/vjqrIbJL0BHzsmEe5eGi5MjJ6JeUBkCbtEUs=; b=o8jtLmGMTg/j6FrH5qMGrYRokarNWfduHVYdcA4l3xtFrJBSYzcinmoONSD8seG9QB wuXP+t/2XlqehNvAYQouCzK4pzKeKriAVJ1y/zkVbCy20DQFmu2W81ZOxPcKcfqQ4nvp 5fokp5lUhWW51b21kUDLpdFh6aKM1/yYMPGxTuMZmAIIOzQO7E0GaosfQHcoB8laTKwO sfJ7StEZxVMPZNLBpbT5bqLltehh0cOy/Q64kWxwNQjgHI53xHcNaH+38W7AqGKIlgKQ IjdYboGyD8uYDBGJwLKrZl84x267f5EwjiERroq5m0tqyZa61AxSpvtsAHdq7IxTZDUo ngaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NvRXYl/vjqrIbJL0BHzsmEe5eGi5MjJ6JeUBkCbtEUs=; b=q+Gr+gAOgLcv04i27QOs8yn8XQ7JvXWTAe7Y1xSh1HTbOqYkBnBAMrKDYKTfy7MKL4 BwCaEJmy1PXu6RJSluZftV6Z2cpIcuFDk7eTUMSjLjtBDAzAS3HbcJ4NaJoJuD3Wx80g kor8h98Hyhx2KABLywv+rEzgToPYQeM2xrrZ02VLJwJMTCkn4f+88lxfbSuyPoDZs7vi wRFjXt4aXTSl47HRudRxyfot/wf7mn0BIGYQMPxZ0NGmO34MCORgCtWlp1EsSJxoY075 yT/7At01eNcF7m57ZlXzngpwGSD3IS1LATCI+wJ0xfcpXXq2GqkE0rPDo9eDA9Vokd+i CCAg== X-Gm-Message-State: APjAAAUSMKIvhdagi/Otal9VfA+R3NtgbizDXC0h1Z/IdTpVnhJxafOI Vc5dsITO3FSLBe5u+TTwWg2/FTZq X-Google-Smtp-Source: APXvYqz0YHwHacXZGEZGCrgf/kWATQGqcMYEDMdTRX8XT/4inL2vVcroUITGoNCf3bA1lcuLqizuNg== X-Received: by 2002:a1c:7e10:: with SMTP id z16mr6298258wmc.117.1556253412396; Thu, 25 Apr 2019 21:36:52 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:57 +0300 Message-Id: <20190426043558.6888-21-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 Subject: [Qemu-devel] [PATCH v7 20/21] gdbstub: Implement target halted (? pkt) with new infra X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 2fd0d66f4d..d678191705 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2239,13 +2239,30 @@ static void handle_gen_set(GdbCmdContext *gdb_ctx, = void *user_ctx) put_packet(gdb_ctx->s, ""); } =20 +static void handle_target_halt(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + char thread_id[16]; + + /* TODO: Make this return the correct value for user-mode. */ + gdb_fmt_thread_id(gdb_ctx->s, gdb_ctx->s->c_cpu, thread_id, + sizeof(thread_id)); + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "T%02xthread:%s;", + GDB_SIGNAL_TRAP, thread_id); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); + /* + * Remove all the breakpoints when this query is issued, + * because gdb is doing and initial connect and the state + * should be cleaned up. + */ + gdb_breakpoint_remove_all(); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { const char *p; int ch; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; - char thread_id[16]; const GdbCmdParseEntry *cmd_parser =3D NULL; =20 trace_gdbstub_io_command(line_buf); @@ -2257,15 +2274,14 @@ static int gdb_handle_packet(GDBState *s, const cha= r *line_buf) put_packet(s, "OK"); break; case '?': - /* TODO: Make this return the correct value for user-mode. */ - snprintf(buf, sizeof(buf), "T%02xthread:%s;", GDB_SIGNAL_TRAP, - gdb_fmt_thread_id(s, s->c_cpu, thread_id, sizeof(thread_i= d))); - put_packet(s, buf); - /* Remove all the breakpoints when this query is issued, - * because gdb is doing and initial connect and the state - * should be cleaned up. - */ - gdb_breakpoint_remove_all(); + { + static const GdbCmdParseEntry target_halted_cmd_desc =3D { + .handler =3D handle_target_halt, + .cmd =3D "?", + .cmd_startswith =3D 1 + }; + cmd_parser =3D &target_halted_cmd_desc; + } break; case 'c': { --=20 2.20.1 From nobody Sun Feb 8 10:04:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1556254367; cv=none; d=zoho.com; s=zohoarc; b=aIkQg334CxXw/YldlFQ9ze1oLNdHgakrCWIgTyjFzKMt+UwtApixCMlHySlT0SWpdXhWn3DWYpRZtXNSbrct6PsJ+fJx/OhGpd1m0YaNMR9UscbZaK/2gWFzdk+ORYFq9ej7MRPzL+HgPvj4F69elCMKr4561Ob2UCdbxWlgyjI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556254367; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=PH0hXIwENcqo6TbPIzo2Qw9MFujZWmL0zJ/Tm+4JKGw=; b=IL21aZdz0XGQDn2Jk1ftIeg7cwwWpBj436xyJKRAPak/57BiFK4/tmD8z8arQiFbC67KNXlYXpyQXY3NOaZ46ebeHTD+dDROPLvf3jDMBVGa5h3MrtRQ4GaT9kH7jNnHuVNN/7ZmMx7LUEYf+ZO1CgUGlu2zSudXsDVQalg406I= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556254367284968.2917481630698; Thu, 25 Apr 2019 21:52:47 -0700 (PDT) Received: from localhost ([127.0.0.1]:39167 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsqq-00054g-0B for importer@patchew.org; Fri, 26 Apr 2019 00:52:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJsmP-0000dG-OG for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:48:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJsbY-00053Z-3D for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:56 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:47041) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJsbX-00052f-SA for qemu-devel@nongnu.org; Fri, 26 Apr 2019 00:36:56 -0400 Received: by mail-wr1-x442.google.com with SMTP id t17so2384999wrw.13 for ; Thu, 25 Apr 2019 21:36:55 -0700 (PDT) Received: from localhost.localdomain (bzq-79-178-247-46.red.bezeqint.net. [79.178.247.46]) by smtp.gmail.com with ESMTPSA id h5sm3467088wmf.38.2019.04.25.21.36.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 21:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PH0hXIwENcqo6TbPIzo2Qw9MFujZWmL0zJ/Tm+4JKGw=; b=L8SqferM1OaybvHivFyxMdAcLXm6Ly9CslZy5z0WQh73gVa9cE/40wyMv4ExL789RK 5WtaSzQrcFMVS2xfj709tWlcG89LAh9qawTg3PvUiwNMwA4skqkApLj5dlFomHB2DJUK vByG2IZ3o1U8Dm/+QYOJTZnDlfXr2TflFmBJ/wO0niQQc9HlbmlqFwrUJ8X3PXmqrmSn qsUottbKJ69i0Oe+AFhp/JyUS9Y/1gJJCNH4CTTWQe4eh3J/yNrPlDsk5VnuAEOLiOXf XGmUuLN912cJCxcW0NdX0cTahspk6SWTTpA/m7ywVndtwNyDnC8WWRjlTX7aBu8iGrpU +uvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PH0hXIwENcqo6TbPIzo2Qw9MFujZWmL0zJ/Tm+4JKGw=; b=hoCsnMO0jg+/WmxNTNfbV/duExjbtNtQPWWziLS4opGr6af46qtYTUBNIHvQ6btg+D ++QA3IWxOrDrMTsO1ICn4smZ1P3Ht8U0norVFcsP9hmDwRVuZy7xJDagcxYAnTmLX1AL onCpOf6sO3zMLcKQEMDZ4BWMrI19nu8peGIHavdnKnlSTcVCSwrwzeIKEc+INCNjthO5 g0sRM6/4utt5CBtYIiCacWaAe8mTQa6N35KclgLOQUUL9rQF3lrLWggSADREFi+Y5efT 2SvjZLeLoxKnf6QThn5rbWigOnBa85ztN2LE8EvEE3m2RfCxj5wUbk8tz7E1T/hDWQRC mg2A== X-Gm-Message-State: APjAAAWocVvGKQWmEUHo/HC8G9Ay9Nolae/kPaacprSHNC10LrOQv/lk URhDYdIFDNrP1nCG1h2gpWbV4Nry X-Google-Smtp-Source: APXvYqxjlLyO7t3TccronAZXmuQoA/WHnxB5Hhpw7M+Y9dB7HrxfHYlMSI1Vn0Xc8VlASZQAyWOvxA== X-Received: by 2002:adf:c993:: with SMTP id f19mr2810001wrh.246.1556253414370; Thu, 25 Apr 2019 21:36:54 -0700 (PDT) From: Jon Doron To: qemu-devel@nongnu.org Date: Fri, 26 Apr 2019 07:35:58 +0300 Message-Id: <20190426043558.6888-22-arilou@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190426043558.6888-1-arilou@gmail.com> References: <20190426043558.6888-1-arilou@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v7 21/21] gdbstub: Clear unused variables in gdb_handle_packet X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, Jon Doron Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Jon Doron --- gdbstub.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index d678191705..8bdfae4b29 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2259,17 +2259,11 @@ static void handle_target_halt(GdbCmdContext *gdb_c= tx, void *user_ctx) =20 static int gdb_handle_packet(GDBState *s, const char *line_buf) { - const char *p; - int ch; - uint8_t mem_buf[MAX_PACKET_LENGTH]; - char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; const GdbCmdParseEntry *cmd_parser =3D NULL; =20 trace_gdbstub_io_command(line_buf); =20 - p =3D line_buf; - ch =3D *p++; - switch(ch) { + switch (line_buf[0]) { case '!': put_packet(s, "OK"); break; @@ -2486,8 +2480,7 @@ static int gdb_handle_packet(GDBState *s, const char = *line_buf) break; default: /* put empty packet */ - buf[0] =3D '\0'; - put_packet(s, buf); + put_packet(s, ""); break; } =20 --=20 2.20.1