From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id /OPbFxM8vmqwRSMAWB0awg (envelope-from ) for ; Thu, 01 Oct 2026 06:55:15 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=E3TQE26i; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 402E81E051; Thu, 01 Oct 2026 06:55:15 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id B12021E033 for ; Thu, 01 Oct 2026 06:55:13 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C9A274BB5905 for ; Thu, 1 Oct 2026 10:55:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C9A274BB5905 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=E3TQE26i Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 585A14BB58A5 for ; Thu, 1 Oct 2026 10:54:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 585A14BB58A5 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 585A14BB58A5 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790852083; cv=none; b=Q1yaWCE6BHYfrvlIMUWZUO0fL9jp6SoPA2ZCXE6RguxlExV69PvDPyp9FAWGOxOKw+g63X826y4XGWdpl2MRGyQ3q8mQx65Zk+a/qsp4nXQeVhw8S4t/MfeoSDxgGMpaM//deFK4K3TyBqo0ySkmyefmk7X7jtKssmcJujhNz3U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790852083; c=relaxed/simple; bh=jLLL+bYM3iXjAhgwKfHPsg6ZeRa5G6/49wP2Zn/duPc=; h=DKIM-Signature:Date:Message-Id:From:To:Subject; b=reIAmFTWj5sp5S25guoCZqD6AKjdrMiRbZPGXSZ6Or0QyRpV1ztKGlsxpeD6IcTXsn3KX3Cx2j8dbnRjaGHjtZCKL6Gftx7qWXmAzuP11IsjAfYnIbJ+VP9OPuGjmFRfCVIrh5vUynZ8MMnKxaTvuc+pjLWNaOVtmpqelM5bu00= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=E3TQE26i DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 585A14BB58A5 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xCEQt-0002Zk-JR; Thu, 01 Oct 2026 06:54:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=oGqpnkeIf7DBCm/fRUNYO6wUY73Rfvylxsy+UKIHIOE=; b=E3TQE26iU+W5 twwcc9tP4hH4t865HYt0zpUbq8t4Ow5LT962XvVv4mrlHNo1J8ABOosgURqBI0Pj5jh5IpHLJlkI3 ao6wNuSHcdBnZKGCrevT8EWka7E9PpXO4oykfBgMe8xMHoFOIJzzKcajvQz2B9BD7NC7euybs5nFJ PqEBYzBZIhmVnm+KV9O9oL6TKVLagI+57hgiVe2MCkDQrbX6oNTQkUdo07Z6pCFercmtLGPuLsPD2 RbLg26B8ju/K7PCLeg2vTkIMvDkOgDSSpb7f1Tz3HCbijba0eogAmKa3KRRCgulCCHLhtT1+09kwW Jy8hiBpQWeWGTI9qa+Sbqw==; Date: Thu, 01 Oct 2026 13:54:32 +0300 Message-Id: <867bk1wv13.fsf@gnu.org> From: Eli Zaretskii To: Bratislav Filipovic Cc: gdb-patches@sourceware.org, simark@simark.ca, Lancelot.Six@amd.com, TankutBaris.Aktemur@amd.com, luis.machado.foss@gmail.com, pedro@palves.net In-Reply-To: <20261001104000.7968-1-bfilipov@amd.com> (message from Bratislav Filipovic on Thu, 1 Oct 2026 12:35:05 +0200) Subject: Re: [PATCH] gdb: Implement stop-on-solib-events for GPU code objects References: <20261001104000.7968-1-bfilipov@amd.com> 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: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org > From: Bratislav Filipovic > CC: , , , > , , Bratislav Filipovic > > Date: Thu, 1 Oct 2026 12:35:05 +0200 > > GDB's "set stop-on-solib-events 1" setting allows users to stop execution > when shared libraries are loaded or unloaded, enabling inspection and > breakpoint placement before library code executes. This feature works for > CPU shared libraries but is not working for GPU code objects loaded by the > AMD ROCm runtime. > > This commit implements stop-on-solib-events support for GPU code objects, > making GPU code object load/unload events behave consistently with CPU > shared library events. > > The root cause is in amd_dbgapi_target_breakpoint::check_status(), which > unconditionally sets bs->stop = 0 and bs->print_it = print_it_noop, > regardless of the stop_on_solib_events setting. This is in contrast to > internal_breakpoint::check_status() for CPU shared libraries, which > respects the setting. > > The fix includes: > > 1. Generalize print_solib_event() function to eliminate code duplication > between CPU and GPU event printing. The function now accepts parameters > for event description, field names, and plural forms. This reduces > ~50 lines of duplicated code. > > 2. Add code_object_list_updated flag to amd_dbgapi_inferior_info to track > when AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED events occur during > process_event_queue(). > > 3. Modify check_status() to check this flag after processing events and > update bs->stop, bs->print, and bs->print_it based on stop_on_solib_events. > > 4. Implement print_it() override to display "Stopped due to GPU code object > event" to distinguish GPU events from CPU shared library events. > > This makes GPU code object load events behave consistently with CPU shared > library events. A test is included in gdb.rocm/solib-event.exp. > > Thanks for the review Simon. Addressed your comments, here's the v2. > > Regards Bratislav > --- > gdb/NEWS | 6 + > gdb/amd-dbgapi-target.c | 56 ++++++++- > gdb/breakpoint.c | 31 +++-- > gdb/breakpoint.h | 6 +- > gdb/doc/gdb.texinfo | 13 +- > gdb/infrun.c | 5 +- > gdb/testsuite/gdb.rocm/solib-event-kernel.cpp | 27 +++++ > gdb/testsuite/gdb.rocm/solib-event.cpp | 105 ++++++++++++++++ > gdb/testsuite/gdb.rocm/solib-event.exp | 112 ++++++++++++++++++ > 9 files changed, 340 insertions(+), 21 deletions(-) > create mode 100644 gdb/testsuite/gdb.rocm/solib-event-kernel.cpp > create mode 100644 gdb/testsuite/gdb.rocm/solib-event.cpp > create mode 100644 gdb/testsuite/gdb.rocm/solib-event.exp Thanks, the documentation parts of this patch are okay. Reviewed-By: Eli Zaretskii