From 901b98215e767bbffb1bfa869e02d7dc5ea786ec Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sat, 28 Aug 2021 10:58:45 -0400 Subject: gdb: use intrusive_list for linux-nat lwp_list Replace the manually maintained linked list of lwp_info objects with intrusive_list. Replace the ALL_LWPS macro with all_lwps, which returns a range. Add all_lwps_safe as well, for use in iterate_over_lwps, which currently iterates in a safe manner. Change-Id: I355313502510acc0103f5eaf2fbde80897d6376c --- gdb/ia64-linux-nat.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'gdb/ia64-linux-nat.c') diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c index 6381e53..371d51f 100644 --- a/gdb/ia64-linux-nat.c +++ b/gdb/ia64-linux-nat.c @@ -589,7 +589,6 @@ ia64_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) { - struct lwp_info *lp; int idx; long dbr_addr, dbr_mask; int max_watchpoints = 4; @@ -630,7 +629,8 @@ ia64_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len, debug_registers[2 * idx] = dbr_addr; debug_registers[2 * idx + 1] = dbr_mask; - ALL_LWPS (lp) + + for (const lwp_info *lp : all_lwps ()) { store_debug_register_pair (lp->ptid, idx, &dbr_addr, &dbr_mask); enable_watchpoints_in_psr (lp->ptid); @@ -657,14 +657,12 @@ ia64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len, dbr_mask = debug_registers[2 * idx + 1]; if ((dbr_mask & (0x3UL << 62)) && addr == (CORE_ADDR) dbr_addr) { - struct lwp_info *lp; - debug_registers[2 * idx] = 0; debug_registers[2 * idx + 1] = 0; dbr_addr = 0; dbr_mask = 0; - ALL_LWPS (lp) + for (const lwp_info *lp : all_lwps ()) store_debug_register_pair (lp->ptid, idx, &dbr_addr, &dbr_mask); return 0; -- cgit v1.1