From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4840 invoked by alias); 29 Mar 2011 12:23:51 -0000 Received: (qmail 4816 invoked by uid 22791); 29 Mar 2011 12:23:47 -0000 X-SWARE-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_00,MSGID_FROM_MTA_HEADER,SPF_SOFTFAIL,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mtagate4.uk.ibm.com (HELO mtagate4.uk.ibm.com) (194.196.100.164) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 29 Mar 2011 12:23:43 +0000 Received: from d06nrmr1707.portsmouth.uk.ibm.com (d06nrmr1707.portsmouth.uk.ibm.com [9.149.39.225]) by mtagate4.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p2TCNfsK015099 for ; Tue, 29 Mar 2011 12:23:41 GMT Received: from d06av02.portsmouth.uk.ibm.com (d06av02.portsmouth.uk.ibm.com [9.149.37.228]) by d06nrmr1707.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p2TCOFgI1495066 for ; Tue, 29 Mar 2011 13:24:15 +0100 Received: from d06av02.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p2TCNeMb027457 for ; Tue, 29 Mar 2011 06:23:41 -0600 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with SMTP id p2TCNd58027043; Tue, 29 Mar 2011 06:23:39 -0600 Message-Id: <201103291223.p2TCNd58027043@d06av02.portsmouth.uk.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Tue, 29 Mar 2011 14:23:39 +0200 Subject: Re: [RFA] Implement support for PowerPC BookE ranged breakpoints To: bauerman@br.ibm.com (Thiago Jung Bauermann) Date: Tue, 29 Mar 2011 13:10:00 -0000 From: "Ulrich Weigand" Cc: gdb-patches@sourceware.org (gdb-patches ml) In-Reply-To: <1301323318.2433.2.camel@hactar> from "Thiago Jung Bauermann" at Mar 28, 2011 11:41:58 AM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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/msg01168.txt.bz2 Thiago Jung Bauermann wrote: > In this patch I had to modify print_recreate_ranged_breakpoint to use > addr_string_range_end since I don't use exp_string anymore. I could > change print_mention_ranged_breakpoint to use it too, since it's > formatted consistently. However, breakpoint.c:mention doesn't use > b->addr_string and instead uses b->source_file and b->line_number, so > I'm not sure if I should use b->addr_string_range_end. I left that out > for now. OK, that's fine with me. > + /* We call decode_line_n1 directly here instead of using Typo: decode_line_1 > + parse_breakpoint_sals because we need to specify the start location's > + symtab and line as the default symtab and line for the end of the > + range. This makes it possible to have ranges like "foo.c:27, +14", > + where +14 means 14 lines from the start location. */ > + sals_end = decode_line_1 (&arg, 1, sal_start.symtab, sal_start.line, > + &canonical_end, NULL); > 2011-03-27 Thiago Jung Bauermann > Sergio Durigan Junior > > Implement support for PowerPC BookE ranged breakpoints. > > gdb/ > * NEWS: Mention support for ranged breakpoints on embedded PowerPC. > * breakpoint.h (struct bp_target_info) : New member > variable. > (struct breakpoint_ops) : Take struct bp_location > instead of struct breakpoint as argument, and also add ASPACE > and BP_ADDR arguments. Update all callers. > (struct breakpoint_ops) : New method. > (struct breakpoint) : New member variable. > * breakpoint.c (breakpoint_location_address_match): Add function > prototype. > (insert_bp_location): Set bl->target_info.length. > (breakpoint_here_p): Call breakpoint_location_address_match. > (moribund_breakpoint_here_p): Likewise. > (regular_breakpoint_inserted_here_p): Likewise. > (breakpoint_thread_match): Likewise. > (bpstat_stop_status): Likewise. > (bpstat_check_location): Move call to > breakpoint_ops.breakpoint_hit to the top. > (print_one_breakpoint_location): Call > breakpoint_ops.print_one_detail if available. > (breakpoint_address_match_range): New function. > (breakpoint_location_address_match): Likewise. > (breakpoint_locations_match): Compare the length field of the > locations too. > (hw_breakpoint_used_count): Count resources used by all locations > in a breakpoint, and use breakpoint_ops.resources_needed if > available. > (breakpoint_hit_ranged_breakpoint): New function. > (resources_needed_ranged_breakpoint): Likewise. > (print_it_ranged_breakpoint): Likewise. > (print_one_ranged_breakpoint): Likewise. > (print_one_detail_ranged_breakpoint): Likewise. > (print_mention_ranged_breakpoint): Likewise. > (print_recreate_ranged_breakpoint): Likewise. > (ranged_breakpoint_ops): New structure. > (find_breakpoint_range_end): New function. > (break_range_command): Likewise. > (delete_breakpoint): Free addr_string_range_end. > (update_breakpoint_locations): Add SALS_END argument. Calculate > breakpoint length if a non-zero SALS_END is given. Call > breakpoint_locations_match instead of breakpoint_address_match. > (reset_breakpoint): Find SaL of the end of the range if B is a > ranged breakpoint. > (_initialize_breakpoint): Register break-range command. > * defs.h (print_core_address): Add function prototype. > * ppc-linux-nat.c (ppc_linux_ranged_break_num_registers): New > function. > (ppc_linux_insert_hw_breakpoint): Support ranged breakpoints. > (ppc_linux_remove_hw_breakpoint): Likewise. > (_initialize_ppc_linux_nat): Initialize > to_ranged_break_num_registers. > * target.c (update_current_target): Add comment about > to_ranged_break_num_registers. > (target_ranged_break_num_registers): New function. > * target.h (struct target_ops) : > New method. > (target_ranged_break_num_registers): Add function prototype. > * ui-out.c (ui_out_field_core_addr): Move address-printing logic to ... > * utils.c (print_core_address): ... here. > > gdb/doc/ > * gdb.texinfo (PowerPC Embedded): Document ranged breakpoints. Otherwise, this is OK. Thanks, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com