From 20100e09dd0f90c1f45a399ae052ddbf6b2b20c1 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Tue, 7 May 2024 09:49:51 +0100 Subject: gdb/testsuite/lib/rocm: Fix with_rocm_gpu_lock A recent commit refactored with_rocm_gpu_lock: commit fbb0edfe60edf4ca01884151e6d9b1353aaa0a7e Date: Sat May 4 10:41:09 2024 +0200 [gdb/testsuite] Factor out proc with_lock Factor out proc with_lock from with_rocm_gpu_lock, and move required procs lock_file_acquire and lock_file_release to lib/gdb-utils.exp. This causes regressions in gdb.rocm/*.exp (as well as in downstream rocgdb). The issue can be reproduced in the following minimal test: load_lib rocm.exp set foo hello with_rocm_gpu_lock { verbose -logs $foo } The issue is that the body to execute under the lock is executed in the context of with_rocm_gpu_lock (uplevel 1 used in with_lock) instead of in the context of the "original" caller. This patch adjusted with_rocm_gpu_lock to account for the new extra frame in the call stack between the caller of with_rocm_gpu_lock and where the code execution is triggered. Approved-By: Tom de Vries Change-Id: I79ce2c9615012215867ed5bb60144abe7dce28fe --- gdb/testsuite/lib/rocm.exp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/testsuite/lib/rocm.exp b/gdb/testsuite/lib/rocm.exp index 2276bb3..b2db0d5 100644 --- a/gdb/testsuite/lib/rocm.exp +++ b/gdb/testsuite/lib/rocm.exp @@ -112,7 +112,7 @@ set gpu_lock_filename gpu-parallel.lock # the GPU lock. proc with_rocm_gpu_lock { body } { - with_lock $::gpu_lock_filename $body + with_lock $::gpu_lock_filename {uplevel 1 $body} # In case BODY returned early due to some testcase failing, and # left GDB running, debugging the GPU. -- cgit v1.1