diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-07-21 12:12:17 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-07-21 12:12:17 +0100 |
commit | 811f8301f8054eb964e92af63930c4495207e7d5 (patch) | |
tree | 7c0f17dbd73977bf92d16059433c6d446190c72c | |
parent | bae62ee2087bb54fd06746c99de9b734cc58a721 (diff) | |
download | gdb-811f8301f8054eb964e92af63930c4495207e7d5.zip gdb-811f8301f8054eb964e92af63930c4495207e7d5.tar.gz gdb-811f8301f8054eb964e92af63930c4495207e7d5.tar.bz2 |
Pass breakpoint type in set_breakpoint_at
Nowadays, set_breakpoint_at creates breakpoint of type
other_breakpoint, but we also use set_breakpoint_at
in set_reinsert_breakpoint to create breakpoint, so that
we have to overwrite the breakpoint type like this,
bp = set_breakpoint_at (stop_at, NULL);
bp->type = reinsert_breakpoint;
which looks not very good. This patch changes set_breakpoint_at
to receive breakpoint type. Since set_breakpoint_at is
used in many places, I rename it to set_breakpoint_type_at, and wrap
it with set_breakpoint_at, and pass other_breakpoint. In this way,
we can call set_breakpoint_type_at with reinsert_breakpoint in
set_reinsert_breakpoint too, and code looks cleaner.
gdb/gdbserver:
2016-07-21 Yao Qi <yao.qi@linaro.org>
* mem-break.c (set_breakpoint_at): Rename it to ...
(set_breakpoint_type_at): ... it.
(set_breakpoint_at): Call set_breakpoint_type_at.
(set_reinsert_breakpoint): Call set_breakpoint_type_at.
* mem-break.h (set_breakpoint_at): Update comments.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbserver/mem-break.c | 20 | ||||
-rw-r--r-- | gdb/gdbserver/mem-break.h | 3 |
3 files changed, 24 insertions, 7 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index cb87e48..9291179 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,11 @@ +2016-07-21 Yao Qi <yao.qi@linaro.org> + + * mem-break.c (set_breakpoint_at): Rename it to ... + (set_breakpoint_type_at): ... it. + (set_breakpoint_at): Call set_breakpoint_type_at. + (set_reinsert_breakpoint): Call set_breakpoint_type_at. + * mem-break.h (set_breakpoint_at): Update comments. + 2016-07-12 Chung-Lin Tang <cltang@codesourcery.com> * linux-nios2-low.c (nios2_fill_gregset): Add type cast diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c index 5c73326..f0b77f9 100644 --- a/gdb/gdbserver/mem-break.c +++ b/gdb/gdbserver/mem-break.c @@ -785,20 +785,29 @@ set_breakpoint (enum bkpt_type type, enum raw_bkpt_type raw_type, return bp; } -/* See mem-break.h */ +/* Set breakpoint of TYPE on address WHERE with handler HANDLER. */ -struct breakpoint * -set_breakpoint_at (CORE_ADDR where, int (*handler) (CORE_ADDR)) +static struct breakpoint * +set_breakpoint_type_at (enum bkpt_type type, CORE_ADDR where, + int (*handler) (CORE_ADDR)) { int err_ignored; CORE_ADDR placed_address = where; int breakpoint_kind = target_breakpoint_kind_from_pc (&placed_address); - return set_breakpoint (other_breakpoint, raw_bkpt_type_sw, + return set_breakpoint (type, raw_bkpt_type_sw, placed_address, breakpoint_kind, handler, &err_ignored); } +/* See mem-break.h */ + +struct breakpoint * +set_breakpoint_at (CORE_ADDR where, int (*handler) (CORE_ADDR)) +{ + return set_breakpoint_type_at (other_breakpoint, where, handler); +} + static int delete_raw_breakpoint (struct process_info *proc, struct raw_breakpoint *todel) @@ -1411,8 +1420,7 @@ set_reinsert_breakpoint (CORE_ADDR stop_at) { struct breakpoint *bp; - bp = set_breakpoint_at (stop_at, NULL); - bp->type = reinsert_breakpoint; + bp = set_breakpoint_type_at (reinsert_breakpoint, stop_at, NULL); } void diff --git a/gdb/gdbserver/mem-break.h b/gdb/gdbserver/mem-break.h index 6a06c0c..dd5a750 100644 --- a/gdb/gdbserver/mem-break.h +++ b/gdb/gdbserver/mem-break.h @@ -141,7 +141,8 @@ int gdb_breakpoint_here (CORE_ADDR where); /* Create a new breakpoint at WHERE, and call HANDLER when it is hit. HANDLER should return 1 if the breakpoint - should be deleted, 0 otherwise. */ + should be deleted, 0 otherwise. The type of the created + breakpoint is other_breakpoint. */ struct breakpoint *set_breakpoint_at (CORE_ADDR where, int (*handler) (CORE_ADDR)); |