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.129.124]) by sourceware.org (Postfix) with ESMTPS id CE0FC3858D28 for ; Thu, 22 Jun 2023 01:45:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CE0FC3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687398305; 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=02bXHaQVneJ4nmaGlOWA25+I09w/lZ/U/UbWCgsNjww=; b=Pk+ZgcPxiC1HNiiWJyiTgDl4RW0yH84wKT985VwUPAHtm5HBbIXo5yfD9hEUfcuPYtZam5 +w4ZG7os6qPmctsrfJOOMpBpau6iaCAFOqwHsGgtY+7WRxp3eMOBGnPE7u+SnBxUqZtLub cKRZ5Sta7CpGh8xsikKAY3J8hDJrnPw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-549-RkomForRPOq8D-Xhr1mz7g-1; Wed, 21 Jun 2023 21:45:02 -0400 X-MC-Unique: RkomForRPOq8D-Xhr1mz7g-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B50E8805AF6; Thu, 22 Jun 2023 01:45:01 +0000 (UTC) Received: from f38-zws-nv (unknown [10.22.9.124]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC3F2492B01; Thu, 22 Jun 2023 01:45:00 +0000 (UTC) Date: Wed, 21 Jun 2023 18:44:59 -0700 From: Kevin Buettner To: "Yan, Zhiyong" Cc: gdb-patches@sourceware.org, Bruno Larsen , "tom@tromey.com" Subject: Re: [PATCH] [patch] gdbserver assert error on arm platform Message-ID: <20230621184459.42a08cd6@f38-zws-nv> In-Reply-To: References: <20230511062001.2745878-1-zhiyong.yan@windriver.com> <50177562-7c96-ec44-5452-b5d3c5ae6a0e@redhat.com> Organization: Red Hat MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Zhiyong, If possible, it'd be nice if you could write a test case which would run when a developer does "make check" (with suitable RUNTESTFLAGS and --target_board settings). I'd guess that you'd put your new .exp file and source file into gdb/testsuite/gdb.server. If you look around in that directory (and perhaps in some of the other testing directories too) you might find something similar upon which to base your new test. I know from experience that it's sometimes a hassle to write these test cases, but they're extremely useful in the long term because regression testing will show if/when the bug (or some other) crops up again. Here are a couple of links which might help you to rework your existing test into a test case for GDB: Testing GDB: https://sourceware.org/gdb/wiki/TestingGDB GDB Testcase Cookbook: https://sourceware.org/gdb/wiki/GDBTestcaseCookbook Please also note that I commented on some formatting nits. Please address those too. If you're wondering about GDB's coding conventions, please see: https://sourceware.org/gdb/wiki/ContributionChecklist#Properly_Formatted_Changes Kevin On Tue, 20 Jun 2023 08:08:52 +0000 "Yan, Zhiyong" wrote: > Hi Bruno, > The test case is attached into https://sourceware.org/bugzilla/show_bug.cgi?id=30387. Please look for "Luis Machado 2023-05-02 14:17:40 UTC" in Bugzilla comments, you can see Luis already produced this issue. > I copy Produce step below, test app and gdb script can be found in the attachment. > > Produce step (This issue can only be produced on arm platform): > > (1) tar xvf gdbserver-test-app.tar on a host which can do arm-cross compile. > (2) In osm.service, modify ExecStart path according to your running environment. > (3) make > (4) Please refer to "make install", install osm systemd service on target board. > > [On target board] > systemctl daemon-reload > systemctl start osm > gdbserver --debug --debug-format=all --remote-debug --event-loop-debug --once --attach :1234 $(pgrep osm) > > [On pc host] > your-arm-gdb ./osm(this is test app build out as above) -x ~/gdbx2 > > gdbx2 can be found in the attachment, please modify target-remote pointing to your target board's gdbserver in gdbx2. > > When gdb executes gdbx2, gdbserver will assert on target board. > > > -----Original Message----- > From: Bruno Larsen > Sent: Tuesday, June 20, 2023 3:36 PM > To: Yan, Zhiyong ; gdb-patches@sourceware.org > Cc: tom@tromey.com > Subject: Re: [PATCH] [patch] gdbserver assert error on arm platform > > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender and know the content is safe. > > Hi Zhiyong, > > Kevin has posted a review back in may 11th: > https://inbox.sourceware.org/gdb-patches/20230511140407.0a0977fb@f37-zws-nv/ > > -- > Cheers, > Bruno > > On 19/06/2023 03:50, Yan, Zhiyong wrote: > > Hi, > > Did this patch get a chance of review ? > > > > Thanks! > > Zhiyong > > > > > > > > -----Original Message----- > > From: zhiyong.yan@windriver.com > > Sent: Thursday, May 11, 2023 2:20 PM > > To: gdb-patches@sourceware.org > > Cc: tom@tromey.com; Yan, Zhiyong > > Subject: [PATCH] [patch] gdbserver assert error on arm platform > > > > From: Zhiyong Yan > > > > Bugzilla 30387 has given the steps of producing this issue on arm platform. > > Gdb should not assume pending threads always generate ___a non-gdbserver trap event___, a ___Signal 17___ event could happen. > > Now that resume_stopped_resumed_lwps() -> may_hw_step() assumes that the break point must already exist, resume_one_thread() should ensure the software breaking point is installed although the thread is pending. > > > > LINK: https://sourceware.org/bugzilla/show_bug.cgi?id=30387 > > > > Signed-off-by: Zhiyong Yan zhiyong.yan@windriver.com > > --- > > gdbserver/linux-low.cc | 12 ++++++++++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc index e6a39202a98..543daf66376 100644 > > --- a/gdbserver/linux-low.cc > > +++ b/gdbserver/linux-low.cc > > @@ -4670,8 +4670,16 @@ linux_process_target::resume_one_thread (thread_info *thread, > > > > proceed_one_lwp (thread, NULL); > > } > > - else > > - threads_debug_printf ("leaving LWP %ld stopped", lwpid_of (thread)); > > + else{ > > + threads_debug_printf ("leaving LWP %ld stopped", lwpid_of (thread)); > > + if(thread->last_resume_kind == resume_step){ > > + /* > > + * If resume_step is required by GDB, install single-step breakpoint. > > + */ > > + if (supports_software_single_step()) > > + install_software_single_step_breakpoints (lwp); > > + } > > + } > > > > thread->last_status.set_ignore (); > > lwp->resume = NULL; > > -- > > 2.25.1 > > >