+extern int breakpoint_thread_match (struct address_space *,
+ CORE_ADDR, ptid_t);
+
+extern void until_break_command (char *, int, int);
+
+extern void breakpoint_re_set (void);
+
+extern void breakpoint_re_set_thread (struct breakpoint *);
+
+extern struct breakpoint *set_momentary_breakpoint
+ (struct gdbarch *, struct symtab_and_line, struct frame_id, enum bptype);
+
+extern struct breakpoint *set_momentary_breakpoint_at_pc
+ (struct gdbarch *, CORE_ADDR pc, enum bptype type);
+
+extern struct breakpoint *clone_momentary_breakpoint (struct breakpoint *bpkt);
+
+extern void set_ignore_count (int, int, int);
+
+extern void set_default_breakpoint (int, struct program_space *,
+ CORE_ADDR, struct symtab *, int);
+
+extern void breakpoint_init_inferior (enum inf_context);
+
+extern struct cleanup *make_cleanup_delete_breakpoint (struct breakpoint *);
+
+extern void delete_breakpoint (struct breakpoint *);
+
+extern void breakpoint_auto_delete (bpstat);
+
+/* Return the chain of command lines to execute when this breakpoint
+ is hit. */
+extern struct command_line *breakpoint_commands (struct breakpoint *b);
+
+extern void break_command (char *, int);
+
+extern void hbreak_command_wrapper (char *, int);
+extern void thbreak_command_wrapper (char *, int);
+extern void rbreak_command_wrapper (char *, int);
+extern void watch_command_wrapper (char *, int, int);
+extern void awatch_command_wrapper (char *, int, int);
+extern void rwatch_command_wrapper (char *, int, int);
+extern void tbreak_command (char *, int);
+
+extern int create_breakpoint (struct gdbarch *gdbarch, char *arg,
+ char *cond_string, int thread,
+ int parse_condition_and_thread,
+ int tempflag, enum bptype wanted_type,
+ int ignore_count,
+ enum auto_boolean pending_break_support,
+ struct breakpoint_ops *ops,
+ int from_tty,
+ int enabled,
+ int internal);
+
+extern void insert_breakpoints (void);
+
+extern int remove_breakpoints (void);
+
+extern int remove_breakpoints_pid (int pid);
+
+/* This function can be used to physically insert eventpoints from the
+ specified traced inferior process, without modifying the breakpoint
+ package's state. This can be useful for those targets which
+ support following the processes of a fork() or vfork() system call,
+ when both of the resulting two processes are to be followed. */
+extern int reattach_breakpoints (int);
+
+/* This function can be used to update the breakpoint package's state
+ after an exec() system call has been executed.
+
+ This function causes the following:
+
+ - All eventpoints are marked "not inserted".
+ - All eventpoints with a symbolic address are reset such that
+ the symbolic address must be reevaluated before the eventpoints
+ can be reinserted.
+ - The solib breakpoints are explicitly removed from the breakpoint
+ list.
+ - A step-resume breakpoint, if any, is explicitly removed from the
+ breakpoint list.
+ - All eventpoints without a symbolic address are removed from the
+ breakpoint list. */
+extern void update_breakpoints_after_exec (void);
+
+/* This function can be used to physically remove hardware breakpoints
+ and watchpoints from the specified traced inferior process, without
+ modifying the breakpoint package's state. This can be useful for
+ those targets which support following the processes of a fork() or
+ vfork() system call, when one of the resulting two processes is to
+ be detached and allowed to run free.
+
+ It is an error to use this function on the process whose id is
+ inferior_ptid. */
+extern int detach_breakpoints (int);
+
+/* This function is called when program space PSPACE is about to be
+ deleted. It takes care of updating breakpoints to not reference
+ this PSPACE anymore. */
+extern void breakpoint_program_space_exit (struct program_space *pspace);
+
+extern void set_longjmp_breakpoint (struct thread_info *tp,
+ struct frame_id frame);
+extern void delete_longjmp_breakpoint (int thread);
+
+extern void enable_overlay_breakpoints (void);
+extern void disable_overlay_breakpoints (void);
+
+extern void set_std_terminate_breakpoint (void);
+extern void delete_std_terminate_breakpoint (void);
+
+/* These functions respectively disable or reenable all currently
+ enabled watchpoints. When disabled, the watchpoints are marked
+ call_disabled. When reenabled, they are marked enabled.
+
+ The intended client of these functions is call_function_by_hand.
+
+ The inferior must be stopped, and all breakpoints removed, when
+ these functions are used.
+
+ The need for these functions is that on some targets (e.g., HP-UX),
+ gdb is unable to unwind through the dummy frame that is pushed as
+ part of the implementation of a call command. Watchpoints can
+ cause the inferior to stop in places where this frame is visible,
+ and that can cause execution control to become very confused.
+
+ Note that if a user sets breakpoints in an interactively called
+ function, the call_disabled watchpoints will have been reenabled
+ when the first such breakpoint is reached. However, on targets
+ that are unable to unwind through the call dummy frame, watches
+ of stack-based storage may then be deleted, because gdb will
+ believe that their watched storage is out of scope. (Sigh.) */
+extern void disable_watchpoints_before_interactive_call_start (void);
+
+extern void enable_watchpoints_after_interactive_call_stop (void);
+
+/* These functions disable and re-enable all breakpoints during
+ inferior startup. They are intended to be called from solib
+ code where necessary. This is needed on platforms where the
+ main executable is relocated at some point during startup
+ processing, making breakpoint addresses invalid.
+
+ If additional breakpoints are created after the routine
+ disable_breakpoints_before_startup but before the routine
+ enable_breakpoints_after_startup was called, they will also
+ be marked as disabled. */
+extern void disable_breakpoints_before_startup (void);
+extern void enable_breakpoints_after_startup (void);
+
+/* For script interpreters that need to define breakpoint commands
+ after they've already read the commands into a struct
+ command_line. */
+extern enum command_control_type commands_from_control_command
+ (char *arg, struct command_line *cmd);
+
+extern void clear_breakpoint_hit_counts (void);
+
+extern struct breakpoint *get_breakpoint (int num);
+
+/* The following are for displays, which aren't really breakpoints,
+ but here is as good a place as any for them. */
+
+extern void disable_current_display (void);
+
+extern void do_displays (void);
+
+extern void disable_display (int);
+
+extern void clear_displays (void);
+
+extern void disable_breakpoint (struct breakpoint *);
+
+extern void enable_breakpoint (struct breakpoint *);
+
+extern void breakpoint_set_commands (struct breakpoint *b,
+ struct command_line *commands);
+
+extern void breakpoint_set_silent (struct breakpoint *b, int silent);
+
+extern void breakpoint_set_thread (struct breakpoint *b, int thread);
+
+extern void breakpoint_set_task (struct breakpoint *b, int task);
+
+/* Clear the "inserted" flag in all breakpoints. */
+extern void mark_breakpoints_out (void);
+
+extern void make_breakpoint_permanent (struct breakpoint *);
+
+extern struct breakpoint *create_jit_event_breakpoint (struct gdbarch *,
+ CORE_ADDR);
+
+extern struct breakpoint *create_solib_event_breakpoint (struct gdbarch *,
+ CORE_ADDR);
+
+extern struct breakpoint *create_thread_event_breakpoint (struct gdbarch *,
+ CORE_ADDR);
+
+extern void remove_jit_event_breakpoints (void);
+
+extern void remove_solib_event_breakpoints (void);
+
+extern void remove_thread_event_breakpoints (void);
+
+extern void disable_breakpoints_in_shlibs (void);
+
+/* This function returns TRUE if ep is a catchpoint. */
+extern int ep_is_catchpoint (struct breakpoint *);
+
+/* Enable breakpoints and delete when hit. Called with ARG == NULL
+ deletes all breakpoints. */
+extern void delete_command (char *arg, int from_tty);
+
+/* Pull all H/W watchpoints from the target. Return non-zero if the
+ remove fails. */
+extern int remove_hw_watchpoints (void);
+
+/* Manage a software single step breakpoint (or two). Insert may be
+ called twice before remove is called. */
+extern void insert_single_step_breakpoint (struct gdbarch *,
+ struct address_space *,
+ CORE_ADDR);
+extern int single_step_breakpoints_inserted (void);
+extern void remove_single_step_breakpoints (void);
+extern void cancel_single_step_breakpoints (void);
+
+/* Manage manual breakpoints, separate from the normal chain of
+ breakpoints. These functions are used in murky target-specific
+ ways. Please do not add more uses! */
+extern void *deprecated_insert_raw_breakpoint (struct gdbarch *,
+ struct address_space *,
+ CORE_ADDR);
+extern int deprecated_remove_raw_breakpoint (struct gdbarch *, void *);
+
+/* Check if any hardware watchpoints have triggered, according to the
+ target. */
+int watchpoints_triggered (struct target_waitstatus *);
+
+/* Update BUF, which is LEN bytes read from the target address MEMADDR,
+ by replacing any memory breakpoints with their shadowed contents. */
+void breakpoint_restore_shadows (gdb_byte *buf, ULONGEST memaddr,
+ LONGEST len);
+
+extern int breakpoints_always_inserted_mode (void);
+
+/* Called each time new event from target is processed.
+ Retires previously deleted breakpoint locations that
+ in our opinion won't ever trigger. */
+extern void breakpoint_retire_moribund (void);
+
+/* Set break condition of breakpoint B to EXP. */
+extern void set_breakpoint_condition (struct breakpoint *b, char *exp,
+ int from_tty);
+
+/* Checks if we are catching syscalls or not.
+ Returns 0 if not, greater than 0 if we are. */
+extern int catch_syscall_enabled (void);
+
+/* Checks if we are catching syscalls with the specific
+ syscall_number. Used for "filtering" the catchpoints.
+ Returns 0 if not, greater than 0 if we are. */
+extern int catching_syscall_number (int syscall_number);
+
+/* Return a tracepoint with the given number if found. */
+extern struct breakpoint *get_tracepoint (int num);
+
+extern struct breakpoint *get_tracepoint_by_number_on_target (int num);
+
+/* Find a tracepoint by parsing a number in the supplied string. */
+extern struct breakpoint *
+ get_tracepoint_by_number (char **arg,
+ struct get_number_or_range_state *state,
+ int optional_p);
+
+/* Return a vector of all tracepoints currently defined. The vector
+ is newly allocated; the caller should free when done with it. */
+extern VEC(breakpoint_p) *all_tracepoints (void);
+
+extern int is_tracepoint (const struct breakpoint *b);
+
+/* Return a vector of all static tracepoints defined at ADDR. The
+ vector is newly allocated; the caller should free when done with
+ it. */
+extern VEC(breakpoint_p) *static_tracepoints_here (CORE_ADDR addr);
+
+/* Function that can be passed to read_command_line to validate
+ that each command is suitable for tracepoint command list. */
+extern void check_tracepoint_command (char *line, void *closure);
+
+/* Call at the start and end of an "rbreak" command to register
+ breakpoint numbers for a later "commands" command. */
+extern void start_rbreak_breakpoints (void);
+extern void end_rbreak_breakpoints (void);
+
+/* Breakpoint iterator function.
+
+ Calls a callback function once for each breakpoint, so long as the
+ callback function returns false. If the callback function returns
+ true, the iteration will end and the current breakpoint will be
+ returned. This can be useful for implementing a search for a
+ breakpoint with arbitrary attributes, or for applying an operation
+ to every breakpoint. */
+extern struct breakpoint *iterate_over_breakpoints (int (*) (struct breakpoint *,
+ void *), void *);
+
+extern int user_breakpoint_p (struct breakpoint *);