From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31583 invoked by alias); 16 Aug 2002 19:11:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 31571 invoked from network); 16 Aug 2002 19:11:04 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 16 Aug 2002 19:11:04 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id BCC143C8D; Fri, 16 Aug 2002 15:11:02 -0400 (EDT) Message-ID: <3D5D4E46.7080902@ges.redhat.com> Date: Fri, 16 Aug 2002 12:11:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020810 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Joel Brobecker Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] enable software single step on alpha-osf References: <20020718203205.GB26990@gnat.com> <3D4DBBC8.5000906@ges.redhat.com> <20020805184920.GC892@gnat.com> <3D5D323A.2030801@ges.redhat.com> <20020816182141.GJ906@gnat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-08/txt/msg00442.txt.bz2 > So, to summarize: > > 1 - The change "+ stop_pc -= DECR_PC_AFTER_BREAK;" seems > to be going in the right direction. > > 2 - However I should hold this change for now because you think I should > write the adjusted PC value back to the target, by adding something > like "write_pc_pid (stop_pc, ecs->ptid)" > > I will verify the impact of such a change, and report. > > 3 - Assuming we get all issues in this RFA resolved, then I will start > looking at the addition of the software_singlestep flag. I think the flag should be added as part of the change. That way we're 100% certain that bpstat_stop_status() isn't going to do a decr_pc_after_break. Expressions like: /* Pass TRUE if our reason for stopping is something other than hitting a breakpoint. We do this by checking that 1) stepping is going on and 2) we didn't hit a breakpoint in a signal handler without an intervening stop in sigtramp, which is detected by a new stack pointer value below any usual function calling stack adjustments. */ (currently_stepping (ecs) && prev_pc != stop_pc - DECR_PC_AFTER_BREAK && !(step_range_end && INNER_THAN (read_sp (),(step_sp - 16))))); would be changed to read: (trap_was_a_software_singlestep || ....) Hmm, looking at the above, on an architecture like the i386, the test ``prev_pc != stop_pc - DECR_PC_AFTER_BREAK'' is probably false when if the code has just stepped off a single byte instruction :-( enjoy, Andrew