diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-08-28 10:58:45 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-09-27 22:30:11 -0400 |
commit | 901b98215e767bbffb1bfa869e02d7dc5ea786ec (patch) | |
tree | 31da2785d795cdf08419b11c6cfd701f1fa7b248 /gdb/ia64-linux-nat.c | |
parent | 676362df181a39a5c58bba15f4f7524bfd58b88d (diff) | |
download | binutils-901b98215e767bbffb1bfa869e02d7dc5ea786ec.zip binutils-901b98215e767bbffb1bfa869e02d7dc5ea786ec.tar.gz binutils-901b98215e767bbffb1bfa869e02d7dc5ea786ec.tar.bz2 |
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
Diffstat (limited to 'gdb/ia64-linux-nat.c')
-rw-r--r-- | gdb/ia64-linux-nat.c | 8 |
1 files changed, 3 insertions, 5 deletions
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; |