From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7892 invoked by alias); 20 Sep 2013 12:08:27 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 7876 invoked by uid 89); 20 Sep 2013 12:08:26 -0000 Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 20 Sep 2013 12:08:26 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RDNS_NONE,SPF_HELO_FAIL autolearn=no version=3.3.2 X-HELO: relay1.mentorg.com Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1VMzVW-0003wf-6e from Muhammad_Waqas@mentor.com for gdb-patches@sourceware.org; Fri, 20 Sep 2013 05:08:22 -0700 Received: from SVR-IES-FEM-01.mgc.mentorg.com ([137.202.0.104]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Fri, 20 Sep 2013 05:08:21 -0700 Received: from [137.202.156.204] (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server (TLS) id 14.2.247.3; Fri, 20 Sep 2013 13:08:18 +0100 Message-ID: <523C3AA4.7020806@codesourcery.com> Date: Fri, 20 Sep 2013 12:08:00 -0000 From: Muhammad Waqas User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8 MIME-Version: 1.0 To: "gdb-patches@sourceware.org" Subject: Re: [PATCH] PR 15520 - GDB step command crashed on non-stop mode References: <5236BD0B.9090802@codesourcery.com> <0377C58828D86C4588AEEC42FC3B85A71767DCF8@IRSMSX105.ger.corp.intel.com> <52380BE7.7050505@codesourcery.com> In-Reply-To: <52380BE7.7050505@codesourcery.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2013-09/txt/msg00762.txt.bz2 On 09/17/2013 12:59 PM, Muhammad Waqas wrote: > On 09/17/2013 12:19 PM, Agovic, Sanimir wrote: >> Hello Muhammad, >> >> I looked at the test only as I lack knowledge about the stepping/breakpoint algorithm. >> >> A single comment below. >> > Thanks. >> Use gdb_test_no_output instead of gdb_test. > > Fixed it. > > Also I updated pr15520.cc. In this unintentionally I used # for > comments, I correct it as well. > Find Patch in attachment as well. > gdb/ChangeLog > 2013-09-13 Muhammad Waqas > > PR 15520 > * infrun.c (adjust_pc_after_break): In non-stop mode > verify software_breakpoint at breakpoint_pc before backup > to breakpoint address. > > gdb.base/ChangeLog > 2013-09-13 Muhammad Waqas > > PR 15520 > *gdb.base/pr15520.cc: New file. > *gdb.base/pr15520.exp: New file. > > Index: infrun.c > =================================================================== > RCS file: /cvs/src/src/gdb/infrun.c,v > retrieving revision 1.590 > diff -u -p -r1.590 infrun.c > --- infrun.c 3 Sep 2013 17:22:45 -0000 1.590 > +++ infrun.c 17 Sep 2013 07:51:11 -0000 > @@ -3038,7 +3038,8 @@ adjust_pc_after_break (struct execution_ > if (singlestep_breakpoints_inserted_p > || !ptid_equal (ecs->ptid, inferior_ptid) > || !currently_stepping (ecs->event_thread) > - || ecs->event_thread->prev_pc == breakpoint_pc) > + || (ecs->event_thread->prev_pc == breakpoint_pc > + && software_breakpoint_inserted_here_p (aspace, breakpoint_pc))) > regcache_write_pc (regcache, breakpoint_pc); > > do_cleanups (old_cleanups); > Index: testsuite/gdb.base/pr15520.cc > =================================================================== > RCS file: testsuite/gdb.base/pr15520.cc > diff -N testsuite/gdb.base/pr15520.cc > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ testsuite/gdb.base/pr15520.cc 17 Sep 2013 07:51:12 -0000 > @@ -0,0 +1,34 @@ > +/* This testcase is part of GDB, the GNU debugger. > + Copyright 2012-2013 Free Software Foundation, Inc. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see > . */ > + > +#include > +using namespace std; > + > +void > +fun (string &str1, string &str2) > +{ > + str1 += str2; > +} > + > +int > +main (void) > +{ > + string str1 = "abc"; > + string str2 = "def"; > + fun(str1,str2); > + > + return 0; > +} > Index: testsuite/gdb.base/pr15520.exp > =================================================================== > RCS file: testsuite/gdb.base/pr15520.exp > diff -N testsuite/gdb.base/pr15520.exp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ testsuite/gdb.base/pr15520.exp 17 Sep 2013 07:51:12 -0000 > @@ -0,0 +1,36 @@ > +# Copyright 2013 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see . > + > +# > +# test running programs > +# > +standard_testfile .cc > + > +if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} { > + return -1 > +} > + > +gdb_test_no_output "set target-async on" "set async mode" > +gdb_test_no_output "set non-stop on" "set non-stop mode" > + > +if ![runto_main] { > + untested non-stop-step > + return -1 > +} > + > +gdb_breakpoint "fun" > +gdb_continue_to_breakpoint "fun" > +gdb_test "step" ".*}.*" "step 1" > +gdb_test "step" ".*main .*$srcfile.*\[\n\r\].*return 0;.*" "step 2" > ping