From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id 515E73858400 for ; Sat, 11 Sep 2021 16:03:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 515E73858400 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embecosm.com Received: by mail-wr1-x432.google.com with SMTP id q11so7347343wrr.9 for ; Sat, 11 Sep 2021 09:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=kIeqEfroyhd59uSJj8tUfJE79szv9RPgsbmMWfrCChE=; b=ewEkEI37WzA8bP8TS3SO9WJP7hpwFQFZQ9KcVdm4eMeqFDFYJE2nyvdlaqKkAKoOkh 7PXWPsHI/2QLjfh18e/biRf0YdcM9fc9yF2jntQmFBZDePJFFRGmmXSXK4q7hOQNHxSB XjBBW5dHG3yDPuknZQFfjHHU/n6eAfY+JHj6Y8HOyAyexl5fpgKAHZi/lT6yDtTupDpq z3mYCQme/7xRf9wDjvhH4At0LUvJwwwJ4srKvkC5KFylMQm6IGWwfGrVomdG6vvbCMwg GkvEFhunWVxt+taTdunVWc5Q0IpjehlJxX8yE2lJ8lsxZDWOtgAoRGCxOOweIV0TyfKS c7nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=kIeqEfroyhd59uSJj8tUfJE79szv9RPgsbmMWfrCChE=; b=iqkUmcFltUaZJ6PVwB6HlroFyHX8ufhmft+S2EzlytDswUNfbWrK7Ak+DyVp9jjEHO RXm3+0KtDWN5kNzC4ZYrc6+PHPEOmUPx6BxC/WndJX4X/1saprv+OnEWB1t1K5s8Gl1N ontyRyKbx6D4vZst0xorf6Ku9mv+j5IcUEhKR9mYeBDa8BRJ8Ko5UazvGBaczLja4RxX p4mIbS2tCgKzqCp4O6gFlkCEKecgH9tIx1Mc5LMIBmYjVC7R26YvjhmHEycdM7ozZgk/ vCuiCLYaBGwN9T+n8mH6bLnCE0fNCHkUs9lR05Ohpkm6qUnIg04IvXRw02yiCEgCBHzu 5w0A== X-Gm-Message-State: AOAM533LJLA1B1GSbGBLaCVp/9NP5g4grP2AbqBNkWu6hOUumJVra+GB yyswLwrXyTTD1S66/Y7yRdF93/9EU+rSJQ== X-Google-Smtp-Source: ABdhPJytoFvlR+Hj+6WZVEdQ4QyKSV7+x+7hXSVGcoLvcOprU/bpVjKehRjaQj0ufjmP1FG2uyiczA== X-Received: by 2002:adf:9d4c:: with SMTP id o12mr3646363wre.187.1631376207117; Sat, 11 Sep 2021 09:03:27 -0700 (PDT) Received: from localhost (host86-153-58-62.range86-153.btcentralplus.com. [86.153.58.62]) by smtp.gmail.com with ESMTPSA id o12sm1727812wms.15.2021.09.11.09.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Sep 2021 09:03:26 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Subject: [PATCH 0/3] Python API for target connections, and packet sending Date: Sat, 11 Sep 2021 17:03:22 +0100 Message-Id: X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Sep 2021 16:03:29 -0000 My goal with the series was to add a Python API for sending packets to remote targets, similar to the existing 'maint packet' CLI command. I did consider just adding such a function at the top level, as in 'gdb.send_remote_packet (...)', but in a multi-connection setup this would require the user to ensure that the correct inferior was selected, and that didn't feel great. So then I thought maybe having 'gdb.Inferior.send_remote_packet' would be better, but that doesn't really feel right, packet sending is not really a property of the inferior, but of the connection between GDB and the target. And so, I've added a whole new object type, gdb.TargetConnection, which represents the connections between GDB and the target, as seen in 'info connections'. This is the first patch in the series. The second patch refactors 'maint packet' to prepare the code for being used from multiple locations. And finally, in the third patch, I add gdb.TargetConnection.send_remote_packet, which is what I needed. All feedback welcome, Thanks, Andrew --- Andrew Burgess (3): gdb/python: introduce gdb.TargetConnection object type gdb: make packet_command function available outside remote.c gdb/python: add TargetConnection.send_remote_packet method gdb/Makefile.in | 1 + gdb/NEWS | 22 + gdb/doc/gdb.texinfo | 1 + gdb/doc/python.texi | 113 ++++- gdb/observable.c | 1 + gdb/observable.h | 3 + gdb/python/py-all-events.def | 1 + gdb/python/py-connection.c | 455 ++++++++++++++++++ gdb/python/py-event-types.def | 5 + gdb/python/py-inferior.c | 16 + gdb/python/python-internal.h | 6 + gdb/python/python.c | 5 + gdb/remote.c | 67 ++- gdb/remote.h | 34 ++ gdb/target-connection.c | 4 + .../gdb.multi/multi-target-info-inferiors.exp | 38 ++ .../gdb.multi/multi-target-info-inferiors.py | 63 +++ gdb/testsuite/gdb.python/py-connection.c | 22 + gdb/testsuite/gdb.python/py-connection.exp | 63 +++ gdb/testsuite/gdb.python/py-inferior.exp | 20 +- gdb/testsuite/gdb.python/py-send-packet.c | 22 + gdb/testsuite/gdb.python/py-send-packet.exp | 55 +++ gdb/testsuite/gdb.python/py-send-packet.py | 82 ++++ 23 files changed, 1073 insertions(+), 26 deletions(-) create mode 100644 gdb/python/py-connection.c create mode 100644 gdb/testsuite/gdb.multi/multi-target-info-inferiors.py create mode 100644 gdb/testsuite/gdb.python/py-connection.c create mode 100644 gdb/testsuite/gdb.python/py-connection.exp create mode 100644 gdb/testsuite/gdb.python/py-send-packet.c create mode 100644 gdb/testsuite/gdb.python/py-send-packet.exp create mode 100644 gdb/testsuite/gdb.python/py-send-packet.py -- 2.25.4