aboutsummaryrefslogtreecommitdiff
path: root/gdb/nat
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/nat')
-rw-r--r--gdb/nat/aarch64-linux.c16
-rw-r--r--gdb/nat/aarch64-linux.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/gdb/nat/aarch64-linux.c b/gdb/nat/aarch64-linux.c
index 7b4ead7..121542a 100644
--- a/gdb/nat/aarch64-linux.c
+++ b/gdb/nat/aarch64-linux.c
@@ -62,3 +62,19 @@ aarch64_linux_prepare_to_resume (struct lwp_info *lwp)
}
}
}
+
+/* Function to call when a new thread is detected. */
+
+void
+aarch64_linux_new_thread (struct lwp_info *lwp)
+{
+ struct arch_lwp_info *info = xcalloc (1, sizeof (*info));
+
+ /* Mark that all the hardware breakpoint/watchpoint register pairs
+ for this thread need to be initialized (with data from
+ aarch_process_info.debug_reg_state). */
+ DR_MARK_ALL_CHANGED (info->dr_changed_bp, aarch64_num_bp_regs);
+ DR_MARK_ALL_CHANGED (info->dr_changed_wp, aarch64_num_wp_regs);
+
+ lwp_set_arch_private_info (lwp, info);
+}
diff --git a/gdb/nat/aarch64-linux.h b/gdb/nat/aarch64-linux.h
index cf4e468..5cb432c 100644
--- a/gdb/nat/aarch64-linux.h
+++ b/gdb/nat/aarch64-linux.h
@@ -21,4 +21,6 @@
void aarch64_linux_prepare_to_resume (struct lwp_info *lwp);
+void aarch64_linux_new_thread (struct lwp_info *lwp);
+
#endif /* AARCH64_LINUX_H */