This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 1/2] Set bp_tgt->reqstd_address and bp_tgt->placed_size in record_full_insert_breakpoint
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 4 Apr 2016 09:38:57 +0100
- Subject: [PATCH 1/2] Set bp_tgt->reqstd_address and bp_tgt->placed_size in record_full_insert_breakpoint
- Authentication-results: sourceware.org; auth=none
- References: <1459759138-1494-1-git-send-email-yao dot qi at linaro dot org>
I notice that bp_tgt won't be fully initialized if to_insert_breakpoint
isn't called in record_full_insert_breakpoint, and bp_tgt->reqstd_address
is zero, so an entry is added to record_full_breakpoints, but its address
is zero, which is wrong. This patch is to call gdbarch_breakpoint_from_pc
in the else branch to set bp_tgt->reqstd_address and bp_tgt->placed_size.
gdb:
2016-04-04 Yao Qi <yao.qi@linaro.org>
* record-full.c (record_full_insert_breakpoint): Set
bp_tgt->reqstd_address and bp_tgt->placed_size.
---
gdb/record-full.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gdb/record-full.c b/gdb/record-full.c
index f6023bf..066a8e7 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -1670,6 +1670,16 @@ record_full_insert_breakpoint (struct target_ops *ops,
in_target_beneath = 1;
}
+ else
+ {
+ CORE_ADDR addr = bp_tgt->reqstd_address;
+ int bplen;
+
+ gdbarch_breakpoint_from_pc (gdbarch, &addr, &bplen);
+
+ bp_tgt->placed_address = addr;
+ bp_tgt->placed_size = bplen;
+ }
bp = XNEW (struct record_full_breakpoint);
bp->addr = bp_tgt->placed_address;
--
1.9.1