Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1010)

Unified Diff: gdb/breakpoint.h

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/break-catch-throw.c ('k') | gdb/breakpoint.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/breakpoint.h
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 4e4f875d14c917bf3c971c87ea0ac9b41b00c31a..be0658fc442ff3101ba57d6d3c1d661ad94b160b 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -1,5 +1,5 @@
/* Data structures associated with breakpoints in GDB.
- Copyright (C) 1992-2004, 2007-2012 Free Software Foundation, Inc.
+ Copyright (C) 1992-2013 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,10 +24,11 @@
#include "vec.h"
#include "ax.h"
#include "command.h"
+#include "break-common.h"
struct value;
struct block;
-struct breakpoint_object;
+struct gdbpy_breakpoint_object;
struct get_number_or_range_state;
struct thread_info;
struct bpstats;
@@ -215,15 +216,6 @@ enum bpdisp
disp_donttouch /* Leave it alone */
};
-enum target_hw_bp_type
- {
- hw_write = 0, /* Common HW watchpoint */
- hw_read = 1, /* Read HW watchpoint */
- hw_access = 2, /* Access HW watchpoint */
- hw_execute = 3 /* Execute HW breakpoint */
- };
-
-
/* Status of breakpoint conditions used when synchronizing
conditions with the target. */
@@ -465,13 +457,17 @@ struct bp_location
it becomes 0 this location is retired. */
int events_till_retirement;
- /* Line number of this address. */
+ /* Line number which was used to place this location.
+
+ Breakpoint placed into a comment keeps it's user specified line number
+ despite ADDRESS resolves into a different line number. */
int line_number;
- /* Source file name of this address. */
+ /* Symtab which was used to place this location. This is used
+ to find the corresponding source file name. */
- char *source_file;
+ struct symtab *symtab;
};
/* This structure is a collection of function pointers that, if available,
@@ -575,8 +571,7 @@ struct breakpoint_ops
This function is called inside `create_breakpoint'. */
void (*create_breakpoints_sal) (struct gdbarch *,
struct linespec_result *,
- struct linespec_sals *, char *,
- char *,
+ char *, char *,
enum bptype, enum bpdisp, int, int,
int, const struct breakpoint_ops *,
int, int, int, unsigned);
@@ -588,6 +583,14 @@ struct breakpoint_ops
This function is called inside `addr_string_to_sals'. */
void (*decode_linespec) (struct breakpoint *, char **,
struct symtabs_and_lines *);
+
+ /* 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);
};
/* Helper for breakpoint_ops->print_recreate implementations. Prints
@@ -700,7 +703,8 @@ struct breakpoint
there is no condition. */
char *cond_string;
- /* String form of extra parameters, or NULL if there are none. */
+ /* String form of extra parameters, or NULL if there are none.
+ Malloc'd. */
char *extra_string;
/* Holds the address of the related watchpoint_scope breakpoint
@@ -733,8 +737,8 @@ struct breakpoint
Python object that has been associated with this breakpoint.
This is always NULL for a GDB that is not script enabled. It
can sometimes be NULL for enabled GDBs as not all breakpoint
- types are tracked by the Python scripting API. */
- struct breakpoint_object *py_bp_object;
+ types are tracked by the scripting language API. */
+ struct gdbpy_breakpoint_object *py_bp_object;
};
/* An instance of this type is used to represent a watchpoint. It
@@ -756,12 +760,12 @@ struct watchpoint
struct expression *exp;
/* The largest block within which it is valid, or NULL if it is
valid anywhere (e.g. consists just of global symbols). */
- struct block *exp_valid_block;
+ const struct block *exp_valid_block;
/* The conditional expression if any. */
struct expression *cond_exp;
/* The largest block within which it is valid, or NULL if it is
valid anywhere (e.g. consists just of global symbols). */
- struct block *cond_exp_valid_block;
+ const struct block *cond_exp_valid_block;
/* Value of the watchpoint the last time we checked it, or NULL when
we do not know the value yet or the value was not readable. VAL
is never lazy. */
@@ -979,11 +983,10 @@ struct bpstat_what bpstat_what (bpstat);
/* Find the bpstat associated with a breakpoint. NULL otherwise. */
bpstat bpstat_find_breakpoint (bpstat, struct breakpoint *);
-/* Nonzero if a signal that we got in wait() was due to circumstances
- explained by the BS. */
-/* Currently that is true if we have hit a breakpoint, or if there is
- a watchpoint enabled. */
-#define bpstat_explains_signal(bs) ((bs) != NULL)
+/* Nonzero if a signal that we got in target_wait() was due to
+ circumstances explained by the bpstat; the signal is therefore not
+ random. */
+extern int bpstat_explains_signal (bpstat, enum gdb_signal);
/* Nonzero is this bpstat causes a stop. */
extern int bpstat_causes_stop (bpstat);
@@ -1183,7 +1186,10 @@ extern void awatch_command_wrapper (char *, int, int);
extern void rwatch_command_wrapper (char *, int, int);
extern void tbreak_command (char *, int);
+extern struct breakpoint_ops base_breakpoint_ops;
extern struct breakpoint_ops bkpt_breakpoint_ops;
+extern struct breakpoint_ops tracepoint_breakpoint_ops;
+extern struct breakpoint_ops dprintf_breakpoint_ops;
extern void initialize_breakpoint_ops (void);
@@ -1212,8 +1218,14 @@ extern void
char *addr_string,
const struct breakpoint_ops *ops,
int tempflag,
+ int enabled,
int from_tty);
+extern void init_catchpoint (struct breakpoint *b,
+ struct gdbarch *gdbarch, int tempflag,
+ char *cond_string,
+ const struct breakpoint_ops *ops);
+
/* Add breakpoint B on the breakpoint list, and notify the user, the
target and breakpoint_created observers of its existence. If
INTERNAL is non-zero, the breakpoint number will be allocated from
@@ -1236,7 +1248,7 @@ enum breakpoint_create_flags
extern int create_breakpoint (struct gdbarch *gdbarch, char *arg,
char *cond_string, int thread,
char *extra_string,
- int parse_condition_and_thread,
+ int parse_arg,
int tempflag, enum bptype wanted_type,
int ignore_count,
enum auto_boolean pending_break_support,
@@ -1284,7 +1296,7 @@ extern void update_breakpoints_after_exec (void);
It is an error to use this function on the process whose id is
inferior_ptid. */
-extern int detach_breakpoints (int);
+extern int detach_breakpoints (ptid_t ptid);
/* This function is called when program space PSPACE is about to be
deleted. It takes care of updating breakpoints to not reference
@@ -1404,6 +1416,11 @@ extern void disable_breakpoints_in_shlibs (void);
/* This function returns TRUE if ep is a catchpoint. */
extern int is_catchpoint (struct breakpoint *);
+/* Shared helper function (MI and CLI) for creating and installing
+ a shared object event catchpoint. */
+extern void add_solib_catchpoint (char *arg, int is_load, int is_temp,
+ int enabled);
+
/* Enable breakpoints and delete when hit. Called with ARG == NULL
deletes all breakpoints. */
extern void delete_command (char *arg, int from_tty);
@@ -1515,6 +1532,8 @@ extern int user_breakpoint_p (struct breakpoint *);
/* Attempt to determine architecture of location identified by SAL. */
extern struct gdbarch *get_sal_arch (struct symtab_and_line sal);
-extern void handle_solib_event (void);
+extern void breakpoint_free_objfile (struct objfile *objfile);
+
+extern char *ep_parse_optional_if_clause (char **arg);
#endif /* !defined (BREAKPOINT_H) */
« no previous file with comments | « gdb/break-catch-throw.c ('k') | gdb/breakpoint.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698