diff options
author | Luis Machado <luisgpm@br.ibm.com> | 2012-02-24 15:15:56 +0000 |
---|---|---|
committer | Luis Machado <luisgpm@br.ibm.com> | 2012-02-24 15:15:56 +0000 |
commit | 9f3a5c850eddd9e804c20a9c664e90b9e3d14140 (patch) | |
tree | 4beed3e5c90d5fcdf9bb8313cf056617828da55f /gdb/gdbserver/mem-break.h | |
parent | 9f14eebc6a9d99804ad44f4f6084b7f279f488df (diff) | |
download | gdb-9f3a5c850eddd9e804c20a9c664e90b9e3d14140.zip gdb-9f3a5c850eddd9e804c20a9c664e90b9e3d14140.tar.gz gdb-9f3a5c850eddd9e804c20a9c664e90b9e3d14140.tar.bz2 |
2012-02-24 Luis Machado <lgustavo@codesourcery>
* server.c (handle_query): Advertise support for target-side
breakpoint condition evaluation.
(process_point_options): New function.
(process_serial_event): When inserting a breakpoint, check for
a target-side condition that should be evaluated.
* mem-break.c: Include regcache.h and ax.h.
(point_cond_list_t): New data structure.
(breakpoint) <cond_list>: New field.
(find_gdb_breakpoint_at): Make non-static.
(delete_gdb_breakpoint_at): Clear any target-side
conditions.
(clear_gdb_breakpoint_conditions): New function.
(add_condition_to_breakpoint): Likewise.
(add_breakpoint_condition): Likewise.
(gdb_condition_true_at_breakpoint): Likewise.
(gdb_breakpoint_here): Return result directly instead
of going through a local variable.
* mem-break.h (find_gdb_breakpoint_at): New prototype.
(clear_gdb_breakpoint_conditions): Likewise.
(add_breakpoint_condition): Likewise.
(gdb_condition_true_at_breakpoint): Likewise.
* linux-low.c (linux_wait_1): Evaluate target-side breakpoint condition.
(need_step_over_p): Take target-side breakpoint condition into
consideration.
Diffstat (limited to 'gdb/gdbserver/mem-break.h')
-rw-r--r-- | gdb/gdbserver/mem-break.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/gdbserver/mem-break.h b/gdb/gdbserver/mem-break.h index 16b6dec..95b7f9d 100644 --- a/gdb/gdbserver/mem-break.h +++ b/gdb/gdbserver/mem-break.h @@ -25,6 +25,11 @@ struct breakpoint; struct fast_tracepoint_jump; +/* Locate a breakpoint placed at address WHERE and return a pointer + to its structure. */ + +struct breakpoint *find_gdb_breakpoint_at (CORE_ADDR where); + /* Create a new GDB breakpoint at WHERE. Returns -1 if breakpoints are not supported on this target, 0 otherwise. */ @@ -39,6 +44,19 @@ int breakpoint_here (CORE_ADDR addr); int breakpoint_inserted_here (CORE_ADDR addr); +/* Clear all breakpoint conditions associated with this address. */ + +void clear_gdb_breakpoint_conditions (CORE_ADDR addr); + +/* Set target-side condition CONDITION to the breakpoint at ADDR. */ + +int add_breakpoint_condition (CORE_ADDR addr, char **condition); + +/* Evaluation condition (if any) at breakpoint BP. Return 1 if + true and 0 otherwise. */ + +int gdb_condition_true_at_breakpoint (CORE_ADDR where); + /* Returns TRUE if there's a GDB breakpoint set at ADDR. */ int gdb_breakpoint_here (CORE_ADDR where); |