Hello guys, This is the patch that modifies the architecture-independent files. It is responsible for the implementation of the new commands (such as hbreak-range and watch-range), and the logic that handles the new types of hardware breakpoints/watchpoints. Regards, -- Sérgio Durigan Júnior Linux on Power Toolchain - Software Engineer Linux Technology Center - LTC IBM Brazil gdb/ChangeLog: 2009-16-12 Sergio Durigan Junior * breakpoint.c (breakpoint_address_match_range): New function. (update_watchpoint): Added variables to save/restore new fields for the new types of hardware breakpoints/watchpoints. Disabled watchpoints before checking the used count. Handled the case when the hardware supports the acceleration of the watchpoint's condition evaluation. (insert_bp_location): Calling the correct insertion method according to the type of the hardware watchpoint. (remove_breakpoint_1): Calling the correct deletion method according to the type of the hardware watchpoint. (print_it_typical): Handling the various cases when the new types of hardware breakpoint/watchpoint are going to be printed. (watchpoints_triggered): Handling the triggering of a hardware masked watchpoint. (value_equal_watchpoint): New function. (watchpoint_check): Calling the correct comparison function for watchpoints. Handling the case of a hardware mased watchpoint trigger. (bpstat_check_location): Handling the case of a hardware ranged watchpoint. (bpstat_check_breakpoint_conditions): Handling the case of a hardware watchpoint with a condition begin hardware-accelerated. (print_one_breakpoint_location): Handling the case of a hardware ranged watchpoint. (breakpoint_1): Ditto. (set_raw_breakpoint_without_location): Setting the flag to zero. (set_raw_breakpoint): Setting the range to zero. (hw_breakpoint_used_count): Added a call to target-specific function that will tell how many extra slots a hardware breakpoint needs. (hw_watchpoint_used_count): Ditto, for hardware watchpoints. (mention): Handling the case when we need to mention special types of hardware breakpoints/watchpoints. (watch_command_1): Added a routine to check for the existence of the `mask' parameter when the user creates a watchpoint. Handling the creation of special types of hardware watchpoints (masked and hardware-accelerated condition). (can_use_hardware_watchpoint): Added code to check if the memory that is going to be watched is big, i.e., it needs a hardware ranged watchpoint. (watch_range_command_1): New function. (watch_range_command): Ditto. (awatch_range_command): Ditto. (rwatch_range_command): Ditto. (hbreak_range_command): Ditto. (update_breakpoint_locations): Handling the case of a hardware watchpoint with a condition begin hardware-accelerated. (exp_is_address_p): New function. (exp_is_var_p): Ditto. (cond_is_address_equal_literal_p): Ditto. (cond_is_var_equal_literal_p): Ditto. (get_var_address): Ditto. (default_watch_address_if_var_equal_literal_p): Ditto. (default_watch_var_if_address_equal_literal_p): Ditto. (default_watch_var_if_var_equal_literal_p): Ditto. (default_watch_address_if_address_equal_literal_p): Ditto. * breakpoint.h (struct bp_target_info) : New field. (struct bp_location) , , , : New fields. (enum hw_point_flag): New. (struct breakpoint) : New field. (default_watch_address_if_address_equal_literal_p): Declaring. (default_watch_var_if_var_equal_literal_p): Ditto. (default_watch_address_if_var_equal_literal_p): Ditto. (default_watch_var_if_address_equal_literal_p): Ditto. * findcmd.c (parse_addr_range): New function. (parse_find_args): Calling `parse_addr_range'. * ui-out.c (ui_out_field_range_core_addr): New function. * ui-out.h (ui_out_field_range_core_addr): Declaring. * value.h (parse_addr_range): Declaring. gdb/testsuite/ChangeLog: 2009-16-12 Sergio Durigan Junior * gdb.base/watchpoint.c (buf): Changing the vector size from 10 to 30. (func3): Assigning a value to `buf'. * gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): New procedure.