From patchwork Fri Oct 6 15:11:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Vrany X-Patchwork-Id: 56214 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7CC4F3857737 for ; Fri, 6 Oct 2023 15:11:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7CC4F3857737 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1696605104; bh=peF+w88+AfDKOtgKlsmgOg2LgtJYfZUBRwAgsZCLYAc=; h=To:CC:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=id1U12Hxg0Yw4wo9uvQHXtsv3AA262oKW6CLh2ZtEc2hO/v3xjB8d+v1oJkIsIzUe imnIDA+K93/XRBkEDe79LFQZfhqpCIi4X0WJu2dkQTKmQ34e/WY0yZV3BTVVDEu5Ja 1oc3SRHFgbVhVkQpWxcBR6SCus6kj/l3ER2VnyvE= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.133.114]) by sourceware.org (Postfix) with ESMTPS id 6950F385828E for ; Fri, 6 Oct 2023 15:11:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6950F385828E Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2174.outbound.protection.outlook.com [104.47.59.174]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-626-LoBWi5pDM2GyAWbMcVTk7Q-1; Fri, 06 Oct 2023 11:11:18 -0400 X-MC-Unique: LoBWi5pDM2GyAWbMcVTk7Q-1 Received: from SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) by CO3PR17MB5775.namprd17.prod.outlook.com (2603:10b6:303:17b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.19; Fri, 6 Oct 2023 15:11:14 +0000 Received: from SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::30eb:4c4a:cb5a:dd91]) by SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::30eb:4c4a:cb5a:dd91%4]) with mapi id 15.20.6838.029; Fri, 6 Oct 2023 15:11:14 +0000 To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [PATCH v3 0/2] gdb/python: implement support for sending custom MI async Date: Fri, 6 Oct 2023 16:11:04 +0100 Message-ID: <20231006151106.315633-1-jan.vrany@labware.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <87bkddtamc.fsf@redhat.com> References: <87bkddtamc.fsf@redhat.com> X-ClientProxiedBy: LO2P123CA0105.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::20) To SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA0PR17MB4314:EE_|CO3PR17MB5775:EE_ X-MS-Office365-Filtering-Correlation-Id: c63b7aad-ab21-4c53-2dd6-08dbc67e7b2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: EcqiPgwLToiSTf7aEYe+yWRbcByYmY8j9KiFcKebVBf0qRhYQ4Cjws/jC0QtrbxuZXSkVHJT9cjRdAoBYSrhrw4XjF/g1ABYZIm9c9C6HeTLOFQkXaDHvcPflyiagV97sO0lREnJ9i0Gg6UYW4nXOS7jXPFpnjhJdJpmXjJQN4f6gysxtiLk9REJeLWTydUga/gu5HMujlhuMN+Ph2If4VdGFWndYegIyKBvcBas3OY5KaeVSIRYcPVPycQmo2erRd7JP1h6DeXkdDR2ByVEDfpW3Gqg5yafCTO8r+ARbN4yylOLl3HEHEGa8JQEXEeD0CyxcBTwSkyBB1dUEBsg1ern2IzYBzFztQwV53jJBJUKfbPcuWwPvyMXlWE9I8Iz9C5+vUrdhct7VG1mmIabL1VADV4qADe7KkI8mpwbigo+UuZ0wpO7eiAoOatA/0l5tptwDsEvBhJPUZioUq6gImzIUiCD7/sCcpkorSwUEezty8VUmLWKU4wjRG1iNKt4AFWlJfuOmISIKRMQxrIZmVoT0PpUdpS4fGiS+A/jbUnLUJzr/5L/eZZXYvDW2adb X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA0PR17MB4314.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(136003)(346002)(39850400004)(396003)(376002)(230922051799003)(64100799003)(451199024)(1800799009)(186009)(478600001)(6506007)(6512007)(6666004)(6486002)(2616005)(107886003)(26005)(316002)(1076003)(8676002)(36756003)(4326008)(2906002)(6916009)(5660300002)(8936002)(44832011)(66556008)(66946007)(41300700001)(86362001)(66476007)(38100700002)(83380400001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gJbl843vkyiZlU9H7P55hWWEhmabeFXVXuFT6QjzuVBssPSZ8wrvmEXdN8o2KK487jDSww7P0Ups9k1lyP44P6gnW68rYI3FwEHDlJO3m86I/RI9HpJSYXRCxL89Okw428RBcodd57bDXkBklJrXXrhGoYGIk/0dIFKbkL3DiPNe/CzcZ5Ev5AiR5sOoKQukhxe8+xOkmFW5PmK16Ck0HtvixoHyl0yul3ytAQZi6VBu6qXnlwpc7cBf9QjcIXDsofHn8cOJ9rHGVXU13dRPl7JqIboPfbL55skg2MVgA5uol0CKKW4rORpkrF5oaoEJMZdi0RkZG3GEwWqDfJ2HiDeiG/4WD3A5Rmhe4qRHCKAAM3El1SzjfQsBqi7+9sK54yKvNr6yuZ81nYrG9c1O9C+QvUtrnDv352EPBASmJ71IQRztKfo7mogYs3OT2GYEU9kHLvbmWKflwxe73Syk/NDlT/FZzeIaw4HPwKbjiaGvJ4gTybCUi/CVHBeTUk+QgfSxex9ru1A1LZKAySqvQ/LPlXk/dpdzCI34xRsZRNtm892rkl3r2Oc9oObb8L4bppnXW/Y6O62g3szKUlOuEG3adOa2r6ebuSy5rV74ER7yf5ufZUWEajrVp0WM8XSNN9Q4iEhXCgHkEUoA05du4uYZDp74InAhJ5yIG4VMLpYPwMaJOv0cdshjllY+2+OPbf/zGXkfFHrt7HyNSR89USZoOnMymmfko7lrzUOTczQl0V1j0lBiqTY3Ceo9Qaj3ohtQmfQiqSAXMNWgH4mfrU6SyAonqN7bWejMMxp1JJS9xzl7auhVB/7Ui2Z5WZBYOSdR0xMb6u9gCaJRwX/foPPDgFUkhLG4gGY6SlrC0BtVE1cVpKy+BjNHoxBZ9zJcVFJ4zjl4RD2UZ76msgIdvJayDKTlh/Q7rFORfs5DtOa9SqBLZgZQ+om3ATFAawa4PbzL3QZGU8yIXXZEh4+HCVU/c4gPBd3X0OgaSyOcDkAg922qfVOnugB2LDPKnJiTfO3ltzswXVo1UUcylqpf8V8zsEejgNO2D2U9GJ1aItxmIgMGSc38xa565fR4ZxujgdQfXlcNg4H24+ts3RH0Sz1oZ5fAJoeisgq9zOzMubjETeGUHiDXEG1LYZ9+n49J2ARL3XPqLWSHFcKZ6zjSMHqdQ+/TwMqqwNIMv/qs7ZGCV0YjvBgyZKrTP9p/RCHlzncEXtD7PByzqLfLH7uAalF5rkuF+qlO90S/5DdWn0agBaZFVU9LXiFJvyORZce3oFq6g/p0mNBUbN1oZNvFsBvt20Vpbi25N097RBkX0+z61Xi43NEAwW+iu9iMU85n1SURon8oKCVnPj4QtPof/LiX1HQIB0AXe4iL0dMm2OhhWUdQsgPgWARob0SirJhVYeCR40SH50MiMoTQUnSBz3sZWsF6jEk7ObKuKTz1fYbN0KI7/Jjfbrx9eqxPOZoWfrLkj6B0RmhsWt4OK5aNGf/UW5oSCOLRQXlzj1uXBoNz77a9jeQ532LuvDGobBHd+Gdg4fMEFt4sHTpzuNdiLr0zwcSTv9FvcY2CbIFqEWCVjDnzFnfTiN3FjxELCO1q X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: c63b7aad-ab21-4c53-2dd6-08dbc67e7b2e X-MS-Exchange-CrossTenant-AuthSource: SA0PR17MB4314.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2023 15:11:13.9869 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F4gNCDLc0IRRXtG0C4wQpw34q5sus3FPjrc+j6E87s8awb7HNsr24nzxeNGgt8mtBGEuPDNrJ31eOXIoa5QzBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO3PR17MB5775 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: labware.com X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Vrany via Gdb-patches From: Jan Vrany Reply-To: Jan Vrany Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" I hope I addressed all comments raised by Andrew for V2 series Changes since V2: * Fixed formatting errors in patch 1 of this series * Fixed formatting errors in patch 2 of this series * Added report name of incorrect data type into error message as suggested. * Moved target_terminal::ours_for_output () right after the check if UI is an MI UI as suggested. * Fixed tests. Changes since V1: * Moved serialize_mi_result and helpers to py-mi.c as suggested. Also, renamed serialize_mi_result to serialize_mi_results instead of serialize_mi_data and do not rename serialize_mi_result_1. The reason for this is that GDB documentation, section GDB/MI Output Syntax, describes "result" being single 'variable = value' pair and "result-record" and "async-output" contains zero or more of these "result"s, so calling top-level serialization function serialize_mi_results seems a better name than serialize_mi_data (used in previous version). * Made gdb.notify_mi DATA parameter optional as suggested. * Validate gdb.notify_mi NAME parameter as suggested. * Updated documentation: * example formatted as black tool would do it, * rephrase some sentences as suggested, * document that DATA parameter is optional, * document restrictions on NAME parameter and * document that users should prefix user-defined notification with hyphen to avoid possible conflicts. Jan Vrany (2): gdb/python: generalize serialize_mi_result() gdb/python: implement support for sending custom MI async notifications gdb/NEWS | 3 + gdb/doc/python.texi | 45 +++++ gdb/python/py-mi.c | 233 ++++++++++++++++++++++ gdb/python/py-micmd.c | 185 +---------------- gdb/python/python-internal.h | 18 ++ gdb/python/python.c | 4 + gdb/testsuite/gdb.python/py-mi-notify.exp | 71 +++++++ 7 files changed, 383 insertions(+), 176 deletions(-) create mode 100644 gdb/testsuite/gdb.python/py-mi-notify.exp