+
+ /* Create SALs from location, storing the result in linespec_result.
+
+ For an explanation about the arguments, see the function
+ `create_sals_from_location_default'.
+
+ This function is called inside `create_breakpoint'. */
+ void (*create_sals_from_location) (const struct event_location *location,
+ struct linespec_result *canonical,
+ enum bptype type_wanted);
+
+ /* This method will be responsible for creating a breakpoint given its SALs.
+ Usually, it just calls `create_breakpoints_sal' (for ordinary
+ breakpoints). However, there may be some special cases where we might
+ need to do some tweaks, e.g., see
+ `strace_marker_create_breakpoints_sal'.
+
+ This function is called inside `create_breakpoint'. */
+ void (*create_breakpoints_sal) (struct gdbarch *,
+ struct linespec_result *,
+ char *, char *,
+ enum bptype, enum bpdisp, int, int,
+ int, const struct breakpoint_ops *,
+ int, int, int, unsigned);
+
+ /* Given the location (second parameter), this method decodes it and
+ provides the SAL locations related to it. For ordinary
+ breakpoints, it calls `decode_line_full'. If SEARCH_PSPACE is
+ not NULL, symbol search is restricted to just that program space.
+
+ This function is called inside `location_to_sals'. */
+ void (*decode_location) (struct breakpoint *b,
+ const struct event_location *location,
+ struct program_space *search_pspace,
+ struct symtabs_and_lines *sals);
+
+ /* Return true if this breakpoint explains a signal. See
+ bpstat_explains_signal. */
+ int (*explains_signal) (struct breakpoint *, enum gdb_signal);
+
+ /* Called after evaluating the breakpoint's condition,
+ and only if it evaluated true. */
+ void (*after_condition_true) (struct bpstats *bs);