From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15841 invoked by alias); 11 Mar 2011 04:20:10 -0000 Received: (qmail 15825 invoked by uid 22791); 11 Mar 2011 04:20:07 -0000 X-SWARE-Spam-Status: No, hits=0.3 required=5.0 tests=AWL,BAYES_00,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mail1.asahi-net.or.jp (HELO mail1.asahi-net.or.jp) (202.224.39.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Mar 2011 04:20:01 +0000 Received: from sk22g2 (y081184.ppp.asahi-net.or.jp [118.243.81.184]) by mail1.asahi-net.or.jp (Postfix) with ESMTP id 17540DE446; Fri, 11 Mar 2011 13:19:58 +0900 (JST) Received: from sa76g2.ysato.dip.jp (localhost [127.0.0.1]) by sk22g2 (Postfix) with ESMTP id B97B83BE1; Fri, 11 Mar 2011 13:19:58 +0900 (JST) Date: Fri, 11 Mar 2011 06:28:00 -0000 Message-ID: <87ipvquw41.wl%ysato@users.sourceforge.jp> From: Yoshinori Sato To: Mike Frysinger Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] h8300 target breakpoint doesn't work on Simulator In-Reply-To: <201103041610.12924.vapier@gentoo.org> References: <877hcen8ml.wl%ysato@users.sourceforge.jp> <201103041610.12924.vapier@gentoo.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?ISO-2022-JP-2?B?R29qGyQoRCtXGyhC?=) APEL/10.8 Emacs/23.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-IsSubscribed: yes 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 X-SW-Source: 2011-03/txt/msg00649.txt.bz2 At Fri, 4 Mar 2011 16:10:11 -0500, Mike Frysinger wrote: > > On Friday, March 04, 2011 11:38:42 Yoshinori Sato wrote: > > h8300-elf simulator handling O_BPT instruction of breakpoint. > > But gdb write to O_SLEEP instruction of breakpoint. > > > > So breakpoint command doesn't work on h8300 simulator. > > > > --- h8300-tdep.c 25 Jan 2011 12:13:20 -0000 1.128 > > +++ h8300-tdep.c 4 Mar 2011 16:31:41 -0000 > > @@ -1197,8 +1197,7 @@ > > h8300_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, > > int *lenptr) > > { > > - /*static unsigned char breakpoint[] = { 0x7A, 0xFF }; *//* ??? */ > > - static unsigned char breakpoint[] = { 0x01, 0x80 }; /* Sleep */ > > + static unsigned char breakpoint[] = { 0x7A, 0xFF }; /* bpt (only > > simulator) */ > > this sounds like you're fixing one system (sim) at the cost of breaking others > (everyone else). this func is used by all h8300 targets ... not just sim. so > are you sure this is what you want ? > > try looking at the Blackfin tdep to see how we handle sim-specific bp's. > -mike Thanks comment. I rewrite fix. Index: ChangeLog =================================================================== RCS file: /cvs/src/src/gdb/ChangeLog,v retrieving revision 1.12792 diff -u -r1.12792 ChangeLog --- ChangeLog 11 Mar 2011 02:33:27 -0000 1.12792 +++ ChangeLog 11 Mar 2011 04:19:13 -0000 @@ -1,3 +1,8 @@ +2011-03-11 Yoshinori Sato + + * h8300-tdep.c (h8300_breakpoint_from_pc): Update to breakpoint + instruction + 2011-03-10 Maxim Grigoriev * xtensa-tdep.c (windowing_enabled): Remove inline attribute. Index: h8300-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/h8300-tdep.c,v retrieving revision 1.128 diff -u -r1.128 h8300-tdep.c --- h8300-tdep.c 25 Jan 2011 12:13:20 -0000 1.128 +++ h8300-tdep.c 11 Mar 2011 04:19:13 -0000 @@ -1197,11 +1197,16 @@ h8300_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) { - /*static unsigned char breakpoint[] = { 0x7A, 0xFF }; *//* ??? */ - static unsigned char breakpoint[] = { 0x01, 0x80 }; /* Sleep */ + static const unsigned char sim_breakpoint[] = { 0x7A, 0xFF }; /* bpt */ + static const unsigned char breakpoint[] = { 0x57, 0x30 }; /* trap #3 */ - *lenptr = sizeof (breakpoint); - return breakpoint; + if (strcmp(target_shortname, "sim") == 0) { + *lenptr = sizeof (sim_breakpoint); + return sim_breakpoint; + } else { + *lenptr = sizeof (breakpoint); + return breakpoint; + } } static void -- Yoshinori Sato