From nobody Fri Nov 14 18:16:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=temperror (zohomail.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1760453835; cv=none; d=zohomail.com; s=zohoarc; b=OkN7/DeOBh1P5lstsuwL+Ri1w4nXZ/sJCFPelB6rTPz4n22adCca4MH32WOzlqdua0RqJcdK5Gc+GgcEmTG9S0Xx12Jo1BQNR2GNk/3ws3FEQJcE/XcXA3Hyebr5ORI7ru59nx7oDo1NnpG9msELOTxf7+en8NttSvRnVYn9818= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760453835; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7VX/s1+Wj+vy0xbRIPRgxumjnwJoTd8r9N5R0pw4FzU=; b=i4quwZC4Aacsoq8676II8h8f+KxDiN+XlYRgRAQcXhUNWP36AFZv+F1OjS4ip4oyatIlWcuBEEwdxax5mJW9YuWKzkk9rhSOYkR2UKlmkvbDn50CMs87MuBj7EJwAUKrgYh+fDSEi0BkegmvjFwY5Sj7kMnNgOcOczzRroTmVCY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=temperror (zohomail.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760453824498489.7748940101933; Tue, 14 Oct 2025 07:57:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8faP-0008Iv-IB; Tue, 14 Oct 2025 10:01:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8faG-0008HI-QI for qemu-devel@nongnu.org; Tue, 14 Oct 2025 10:01:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8faD-0004Sx-9X for qemu-devel@nongnu.org; Tue, 14 Oct 2025 10:01:00 -0400 Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-563-FqWpkPODPwq_4sXhokXq9A-1; Tue, 14 Oct 2025 10:00:52 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 637BE1800591 for ; Tue, 14 Oct 2025 14:00:51 +0000 (UTC) Received: from toolbx.redhat.com (unknown [10.42.28.198]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 3A16D3000383; Tue, 14 Oct 2025 14:00:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1760450455; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7VX/s1+Wj+vy0xbRIPRgxumjnwJoTd8r9N5R0pw4FzU=; b=CJkpY7SMUY3nPbHiTtMK9z8ssEPESTf2MFXrY9xi3xSfSVqaUZq/O8ha2pXQoVHBuTrEm3 iEfWZRzwaW1UIPNs5HsZdvZgPGg+JTSdKwEFWY6nj64go/U8+WZJbFtq4ha3PxSLsne5jn MWnG9UiZx2dkxt3PVA3I9vGptXNfI0g= X-MC-Unique: FqWpkPODPwq_4sXhokXq9A-1 X-Mimecast-MFC-AGG-ID: FqWpkPODPwq_4sXhokXq9A_1760450451 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: Thomas Huth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 1/2] tests/functional: remove use of getLogger in reverse debuging Date: Tue, 14 Oct 2025 15:00:46 +0100 Message-ID: <20251014140047.385347-2-berrange@redhat.com> In-Reply-To: <20251014140047.385347-1-berrange@redhat.com> References: <20251014140047.385347-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: temperror (zohomail.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; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1760453859713158500 This fixes the gap left by commit 8a44d8c2ac0921c8064fbfd00ef28e3a2588918e Author: Daniel P. Berrang=C3=A9 Date: Fri Sep 12 19:22:00 2025 +0100 tests/functional: use self.log for all logging ensuring that log message from the reverse debugging test actually make it into the logfile on disk. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Thomas Huth Tested-by: Thomas Huth --- tests/functional/reverse_debugging.py | 49 ++++++++++++--------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/tests/functional/reverse_debugging.py b/tests/functional/rever= se_debugging.py index 68cfcb3985..2c37a62cd0 100644 --- a/tests/functional/reverse_debugging.py +++ b/tests/functional/reverse_debugging.py @@ -36,14 +36,13 @@ class ReverseDebugging(LinuxKernelTest): STEPS =3D 10 =20 def run_vm(self, record, shift, args, replay_path, image_path, port): - logger =3D logging.getLogger('replay') vm =3D self.get_vm(name=3D'record' if record else 'replay') vm.set_console() if record: - logger.info('recording the execution...') + self.log.info('recording the execution...') mode =3D 'record' else: - logger.info('replaying the execution...') + self.log.info('replaying the execution...') mode =3D 'replay' vm.add_args('-gdb', 'tcp::%d' % port, '-S') vm.add_args('-icount', 'shift=3D%s,rr=3D%s,rrfile=3D%s,rrsnapshot= =3Dinit' % @@ -68,10 +67,8 @@ def vm_get_icount(vm): def reverse_debugging(self, gdb_arch, shift=3D7, args=3DNone): from qemu_test import GDB =20 - logger =3D logging.getLogger('replay') - # create qcow2 for snapshots - logger.info('creating qcow2 image for VM snapshots') + self.log.info('creating qcow2 image for VM snapshots') image_path =3D os.path.join(self.workdir, 'disk.qcow2') qemu_img =3D get_qemu_img(self) if qemu_img is None: @@ -79,7 +76,7 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args=3DN= one): 'create the temporary qcow2 image') out =3D check_output([qemu_img, 'create', '-f', 'qcow2', image_pat= h, '128M'], encoding=3D'utf8') - logger.info("qemu-img: %s" % out) + self.log.info("qemu-img: %s" % out) =20 replay_path =3D os.path.join(self.workdir, 'replay.bin') =20 @@ -90,7 +87,7 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args=3DN= one): last_icount =3D self.vm_get_icount(vm) vm.shutdown() =20 - logger.info("recorded log with %s+ steps" % last_icount) + self.log.info("recorded log with %s+ steps" % last_icount) =20 # replay and run debug commands with Ports() as ports: @@ -98,9 +95,9 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args=3DN= one): vm =3D self.run_vm(False, shift, args, replay_path, image_path= , port) =20 try: - logger.info('Connecting to gdbstub...') + self.log.info('Connecting to gdbstub...') self.reverse_debugging_run(vm, port, gdb_arch, last_icount) - logger.info('Test passed.') + self.log.info('Test passed.') except GDB.TimeoutError: # Convert a GDB timeout exception into a unittest failure exce= ption. raise self.failureException("Timeout while connecting to or " @@ -111,8 +108,6 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args= =3DNone): raise =20 def reverse_debugging_run(self, vm, port, gdb_arch, last_icount): - logger =3D logging.getLogger('replay') - gdb_cmd =3D os.getenv('QEMU_TEST_GDB') gdb =3D GDB(gdb_cmd) =20 @@ -135,43 +130,43 @@ def reverse_debugging_run(self, vm, port, gdb_arch, l= ast_icount): =20 gdb.cli("set debug remote 0") =20 - logger.info('stepping forward') + self.log.info('stepping forward') steps =3D [] # record first instruction addresses for _ in range(self.STEPS): pc =3D self.get_pc(gdb) - logger.info('saving position %x' % pc) + self.log.info('saving position %x' % pc) steps.append(pc) gdb.cli("stepi") =20 # visit the recorded instruction in reverse order - logger.info('stepping backward') + self.log.info('stepping backward') for addr in steps[::-1]: - logger.info('found position %x' % addr) + self.log.info('found position %x' % addr) gdb.cli("reverse-stepi") pc =3D self.get_pc(gdb) if pc !=3D addr: - logger.info('Invalid PC (read %x instead of %x)' % (pc, ad= dr)) + self.log.info('Invalid PC (read %x instead of %x)' % (pc, = addr)) self.fail('Reverse stepping failed!') =20 # visit the recorded instruction in forward order - logger.info('stepping forward') + self.log.info('stepping forward') for addr in steps: - logger.info('found position %x' % addr) + self.log.info('found position %x' % addr) pc =3D self.get_pc(gdb) if pc !=3D addr: - logger.info('Invalid PC (read %x instead of %x)' % (pc, ad= dr)) + self.log.info('Invalid PC (read %x instead of %x)' % (pc, = addr)) self.fail('Forward stepping failed!') gdb.cli("stepi") =20 # set breakpoints for the instructions just stepped over - logger.info('setting breakpoints') + self.log.info('setting breakpoints') for addr in steps: gdb.cli(f"break *{hex(addr)}") =20 # this may hit a breakpoint if first instructions are executed # again - logger.info('continuing execution') + self.log.info('continuing execution') vm.qmp('replay-break', icount=3Dlast_icount - 1) # continue - will return after pausing # This can stop at the end of the replay-break and gdb gets a SIGI= NT, @@ -180,12 +175,12 @@ def reverse_debugging_run(self, vm, port, gdb_arch, l= ast_icount): gdb.cli("continue") =20 if self.vm_get_icount(vm) =3D=3D last_icount - 1: - logger.info('reached the end (icount %s)' % (last_icount - 1)) + self.log.info('reached the end (icount %s)' % (last_icount - 1= )) else: - logger.info('hit a breakpoint again at %x (icount %s)' % + self.log.info('hit a breakpoint again at %x (icount %s)' % (self.get_pc(gdb), self.vm_get_icount(vm))) =20 - logger.info('running reverse continue to reach %x' % steps[-1]) + self.log.info('running reverse continue to reach %x' % steps[-1]) # reverse continue - will return after stopping at the breakpoint gdb.cli("reverse-continue") =20 @@ -195,8 +190,8 @@ def reverse_debugging_run(self, vm, port, gdb_arch, las= t_icount): if pc !=3D steps[-1]: self.fail("'reverse-continue' did not hit the first PC in reve= rse order!") =20 - logger.info('successfully reached %x' % steps[-1]) + self.log.info('successfully reached %x' % steps[-1]) =20 - logger.info('exiting gdb and qemu') + self.log.info('exiting gdb and qemu') gdb.exit() vm.shutdown() --=20 2.50.1 From nobody Fri Nov 14 18:16:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1760456144; cv=none; d=zohomail.com; s=zohoarc; b=RXkpTZuCJj7+P4vcLIzrARKVVSFya0rgcMQc9CVuh16VOzIBZhYqdhSY6FovhytYPn4WYFIi5EWGDkfw3l7G7LLYZNCiuy9CWZBhV4h+JuH3mwJoVkrOAU420VZeEXSlE4zyoYAKRRw73uhiZBA9M3IrFM0Tfgs/MgsR8CH6dJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760456144; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iZP0l5kJ/fstb/E7M3cLqNH7C5WxLCSjaU6PD5Aitzk=; b=UT4y8kjPM6V2iaSKz5a+yhLjXRtF2t04rxcQkNThAQkkEq0IOvDW4OvoRlTnHMmsHacfw8ygW+lhGSzp1ZFqAgU2KtjDHsE0pPyGAlCesCyqbLeJPJJsDr/3clX/m2V4lCT38OVC3GIp36Q2fX8RZR1zqbwsWs+xPHt5zB8CPtQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760456144126489.14305069341776; Tue, 14 Oct 2025 08:35:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8faX-0008Q0-RW; Tue, 14 Oct 2025 10:01:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8faL-0008Hx-9i for qemu-devel@nongnu.org; Tue, 14 Oct 2025 10:01:05 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8faE-0004T0-W4 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 10:01:02 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-52-v6QW6aFyPdi2E0Dzj7W4dw-1; Tue, 14 Oct 2025 10:00:53 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DC5A0180058A for ; Tue, 14 Oct 2025 14:00:52 +0000 (UTC) Received: from toolbx.redhat.com (unknown [10.42.28.198]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B57E4300018D; Tue, 14 Oct 2025 14:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1760450456; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iZP0l5kJ/fstb/E7M3cLqNH7C5WxLCSjaU6PD5Aitzk=; b=X220aO0RVy6vOAuUqDjWFwwa0JwlVMZ2M5fuYnTKdydVtqMl79WidSvNQlWsMgcc5TB+CB SxdLyvuwvhvnMJSQ+cR4hx+vfiZXBqPP6nbQl977a4hUVWvOY1GQG6ZJNxyZAdxaHSXcxt HlWR+1RgRnkJZ/KDn4/BbmYqtj9LrP8= X-MC-Unique: v6QW6aFyPdi2E0Dzj7W4dw-1 X-Mimecast-MFC-AGG-ID: v6QW6aFyPdi2E0Dzj7W4dw_1760450453 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: Thomas Huth , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 2/2] tests/functional: ensure GDB client is stopped on error Date: Tue, 14 Oct 2025 15:00:47 +0100 Message-ID: <20251014140047.385347-3-berrange@redhat.com> In-Reply-To: <20251014140047.385347-1-berrange@redhat.com> References: <20251014140047.385347-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1760456146156158500 If the reverse_debugging_run method fails, the GDB client will not be closed resulting in python complaining about resource leaks. Hoisting the GDB client creation into the caller allows this to be cleaned up easily. While doing this, also move the VM shutdown call to match. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Thomas Huth --- tests/functional/reverse_debugging.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/functional/reverse_debugging.py b/tests/functional/rever= se_debugging.py index 2c37a62cd0..86fca8d81f 100644 --- a/tests/functional/reverse_debugging.py +++ b/tests/functional/reverse_debugging.py @@ -96,7 +96,14 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args=3D= None): =20 try: self.log.info('Connecting to gdbstub...') - self.reverse_debugging_run(vm, port, gdb_arch, last_icount) + gdb_cmd =3D os.getenv('QEMU_TEST_GDB') + gdb =3D GDB(gdb_cmd) + try: + self.reverse_debugging_run(gdb, vm, port, gdb_arch, last_i= count) + finally: + self.log.info('exiting gdb and qemu') + gdb.exit() + vm.shutdown() self.log.info('Test passed.') except GDB.TimeoutError: # Convert a GDB timeout exception into a unittest failure exce= ption. @@ -107,10 +114,7 @@ def reverse_debugging(self, gdb_arch, shift=3D7, args= =3DNone): # skipTest(), etc. raise =20 - def reverse_debugging_run(self, vm, port, gdb_arch, last_icount): - gdb_cmd =3D os.getenv('QEMU_TEST_GDB') - gdb =3D GDB(gdb_cmd) - + def reverse_debugging_run(self, gdb, vm, port, gdb_arch, last_icount): r =3D gdb.cli("set architecture").get_log() if gdb_arch not in r: self.skipTest(f"GDB does not support arch '{gdb_arch}'") @@ -191,7 +195,3 @@ def reverse_debugging_run(self, vm, port, gdb_arch, las= t_icount): self.fail("'reverse-continue' did not hit the first PC in reve= rse order!") =20 self.log.info('successfully reached %x' % steps[-1]) - - self.log.info('exiting gdb and qemu') - gdb.exit() - vm.shutdown() --=20 2.50.1