From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id F402D386549C for ; Wed, 23 Mar 2022 22:41:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F402D386549C Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-458-M7W5mlTKNRacrhAfAAAdJA-1; Wed, 23 Mar 2022 18:41:46 -0400 X-MC-Unique: M7W5mlTKNRacrhAfAAAdJA-1 Received: by mail-wm1-f72.google.com with SMTP id c126-20020a1c3584000000b00380dee8a62cso1000202wma.8 for ; Wed, 23 Mar 2022 15:41:46 -0700 (PDT) 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=35ruD6wG+Y0BhQm0zgR2iFaTizDHoFgueJAJDGcF1uo=; b=faU2QCUIbU203Z+MF7QUPps8k8on59NPVj/2gyD2nrwp1Uc2mTYPDDov+x6RRpglej 6Q7EaTA0Amg29dHs0rQyzeBhgLcaYk+Q431+NU1MCD5k+z3+ruKUlGyd/1cZRBpYPvzz 9VC3F6sZxypHDMge8jm1mjWtc7+HB9md2H5+XrQ2UwPmm778yuR8T6+9WYB0DU6OTaXS iXieavqg/kS1sXGo3sJ9cTx2sfoQEh+GoxsJhBki5iSI+dFE6our36z0wjj4EHWYEmdF Ilq+E56e31+AnSjlmLQsU/yj7u2usWh7QHLVRQOKatb8i+N9yd4vhiG1CZQp38QmOGeG tFwg== X-Gm-Message-State: AOAM533bMR+DiVygt0J9joQJVAbFhhS+iFToT+253YmQQ/KyER4vYO5J wZsdFqbcwU0I8qH10vF7v3v57QFuMc9L5bez+uF1Mfe74+NbAqaGC2tn5kx2mnTODpvgo+VzfOq YLkyyJ+FvL1uw9YJ62njKaXC0OLNOnpiHLHDPduYgyNRnLfDqNBwl37/xjRMV+VCPLhXM5BZh4w == X-Received: by 2002:a05:6000:1a85:b0:203:86bc:9816 with SMTP id f5-20020a0560001a8500b0020386bc9816mr1933933wry.67.1648075304772; Wed, 23 Mar 2022 15:41:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw2QNr7qDgGE5POABFewLhDTJuq6jAQREdgvDe5K6Fl3gIUyewfkf/DDCcWqTlwX1nMpQgoPA== X-Received: by 2002:a05:6000:1a85:b0:203:86bc:9816 with SMTP id f5-20020a0560001a8500b0020386bc9816mr1933920wry.67.1648075304568; Wed, 23 Mar 2022 15:41:44 -0700 (PDT) Received: from localhost (host109-158-45-15.range109-158.btcentralplus.com. [109.158.45.15]) by smtp.gmail.com with ESMTPSA id i9-20020a5d5849000000b002058631cfacsm913660wrf.61.2022.03.23.15.41.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Mar 2022 15:41:43 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess Subject: [PATCHv2 0/3] Add Python API for the disassembler Date: Wed, 23 Mar 2022 22:41:38 +0000 Message-Id: X-Mailer: git-send-email 2.25.4 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham 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: Wed, 23 Mar 2022 22:41:49 -0000 Finally gotten back to this work! Changes in v2: - The first 3 patches from the v1 series were merged a while back, these were all refactoring, or auxiliary features, - There's a new #1 patch in the v2 series that does some new refactoring of GDB's disassembler classes, this was required in order to simplify the #3 patch, - Patch #2 in the v2 series is largely unchanged from patch #4 in the v1 series, - The syntax highlighting work that was in the v1 series was spun out into its own patch, and has been merged separately, - The format_address helper function that appeared in the v1 series, and that Simon suggested I make more general, was spun out into its own patch, and merged separately, - Finally, patch #3 in the v2 series is pretty much a complete rewrite from the v1 series in order to follow the approach suggested by Simon. Results are now returned directly, either via 'return' or by raising an exception, in contrast to the original approach which involved "setting" the result into an existing state object. All feedback welcome, Thanks, Andrew --- Andrew Burgess (3): gdb: add new base class to gdb_disassembler gdb: add extension language print_insn hook gdb/python: implement the print_insn extension language hook gdb/Makefile.in | 1 + gdb/NEWS | 34 + gdb/arm-tdep.c | 4 +- gdb/data-directory/Makefile.in | 1 + gdb/disasm.c | 64 +- gdb/disasm.h | 89 ++- gdb/doc/python.texi | 239 ++++++ gdb/extension-priv.h | 15 + gdb/extension.c | 20 + gdb/extension.h | 17 + gdb/guile/guile.c | 6 +- gdb/mips-tdep.c | 4 +- gdb/python/lib/gdb/disassembler.py | 109 +++ gdb/python/py-disasm.c | 970 +++++++++++++++++++++++++ gdb/python/python-internal.h | 16 + gdb/python/python.c | 3 + gdb/testsuite/gdb.python/py-disasm.c | 25 + gdb/testsuite/gdb.python/py-disasm.exp | 150 ++++ gdb/testsuite/gdb.python/py-disasm.py | 456 ++++++++++++ 19 files changed, 2176 insertions(+), 47 deletions(-) create mode 100644 gdb/python/lib/gdb/disassembler.py create mode 100644 gdb/python/py-disasm.c create mode 100644 gdb/testsuite/gdb.python/py-disasm.c create mode 100644 gdb/testsuite/gdb.python/py-disasm.exp create mode 100644 gdb/testsuite/gdb.python/py-disasm.py -- 2.25.4