From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29601 invoked by alias); 20 Aug 2002 18:27:58 -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 29593 invoked from network); 20 Aug 2002 18:27:58 -0000 Received: from unknown (HELO valrhona.uglyboxes.com) (64.1.192.220) by sources.redhat.com with SMTP; 20 Aug 2002 18:27:58 -0000 Received: from localhost.localdomain (IDENT:Xxc74jmTxVIjiWP5F2RgNfr8sYdnzAGq@localhost.localdomain [127.0.0.1]) by valrhona.uglyboxes.com (8.11.6/8.11.6) with ESMTP id g7KIUTL09570 for ; Tue, 20 Aug 2002 11:30:35 -0700 Date: Tue, 20 Aug 2002 11:27:00 -0000 From: Keith Seitz X-X-Sender: keiths@valrhona.uglyboxes.com To: gdb-patches@sources.redhat.com Subject: [RFA] scope_breakpoint -> internal breakpoint Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2002-08/txt/msg00605.txt.bz2 Hi, When a watchpoint is set on a local variable, GDB sets a breakpoint of type bp_watchpoint_scope to detect when the watchpoint is out of scope. Right now, it does this using a "user-visible" breakpoint number (>0). This patch changes this so that this internal breakpoint is created as an internal breakpoint (<0). Section 5.1.2 of the user manual makes no mention of this breakpoint, so I am suggesting that we make it one of the optionally-displayed internal breakpoints. I've run this through the testsuite and it introduces no new failures. Keith ChangeLog 2002-08-20 Keith Seitz * breakpoints.c (watch_command_1): Use internal breakpoint when setting a watchpoint_scope breakpoint. Patch Index: breakpoint.c =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.c,v retrieving revision 1.80 diff -p -r1.80 breakpoint.c *** breakpoint.c 17 Aug 2002 06:12:52 -0000 1.80 --- breakpoint.c 20 Aug 2002 18:19:42 -0000 *************** watch_command_1 (char *arg, int accessfl *** 5331,5346 **** if (prev_frame) { struct breakpoint *scope_breakpoint; ! struct symtab_and_line scope_sal; ! ! INIT_SAL (&scope_sal); /* initialize to zeroes */ ! scope_sal.pc = get_frame_pc (prev_frame); ! scope_sal.section = find_pc_overlay (scope_sal.pc); ! ! scope_breakpoint = set_raw_breakpoint (scope_sal, ! bp_watchpoint_scope); ! set_breakpoint_count (breakpoint_count + 1); ! scope_breakpoint->number = breakpoint_count; scope_breakpoint->enable_state = bp_enabled; --- 5331,5338 ---- if (prev_frame) { struct breakpoint *scope_breakpoint; ! scope_breakpoint = create_internal_breakpoint (get_frame_pc (prev_frame), ! bp_watchpoint_scope); scope_breakpoint->enable_state = bp_enabled;