#include "gdb-events.h"
struct value;
+struct block;
/* This is the maximum number of bytes a breakpoint instruction can take.
Feel free to increase it. It's just used in a few places to size
hw_execute = 3 /* Execute HW breakpoint */
};
+/* This structure is a collection of function pointers that, if available,
+ will be called instead of the performing the default action for this
+ bptype. */
+
+struct breakpoint_ops
+{
+ /* The normal print routine for this breakpoint, called when we
+ hit it. */
+ enum print_stop_action (*print_it) (struct breakpoint *);
+
+ /* Display information about this breakpoint, for "info breakpoints". */
+ void (*print_one) (struct breakpoint *, CORE_ADDR *);
+
+ /* Display information about this breakpoint after setting it (roughly
+ speaking; this is called from "mention"). */
+ void (*print_mention) (struct breakpoint *);
+};
+
/* Note that the ->silent field is not currently used by any commands
(though the code is in there if it was to be, and set_raw_breakpoint
does set it to 0). I implemented it because I thought it would be
/* Number assigned to distinguish breakpoints. */
int number;
- /* Address to break at.
- Note that zero is a perfectly valid code address on some
- platforms (for example, the mn10200 and mn10300 simulators).
- NULL is not a special value for this field. */
+ /* Address to break at. Note that zero is a perfectly valid code
+ address on some platforms (for example, the OBSOLETE mn10200
+ and mn10300 simulators). NULL is not a special value for this
+ field. */
CORE_ADDR address;
/* Line number of this address. */
char *exec_pathname;
asection *section;
+
+ /* Methods associated with this breakpoint. */
+ struct breakpoint_ops *ops;
};
\f
/* The following stuff is an abstract data type "bpstat" ("breakpoint
extern int breakpoint_thread_match (CORE_ADDR, ptid_t);
-extern void until_break_command (char *, int);
+extern void until_break_command (char *, int, int);
extern void breakpoint_re_set (void);
enabled watchpoints. When disabled, the watchpoints are marked
call_disabled. When reenabled, they are marked enabled.
- The intended client of these functions is infcmd.c\run_stack_dummy.
+ 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.