From b1babce7c31def7fb894875136788490b167f989 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 22 Mar 2022 12:05:43 -0700 Subject: [PATCH] x86-nat: Add x86_lookup_debug_reg_state. This function returns nullptr if debug register state does not yet exist for a given process rather than creating new state. --- gdb/x86-nat.c | 12 ++++++++++++ gdb/x86-nat.h | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/gdb/x86-nat.c b/gdb/x86-nat.c index c1e892bf564..36513dd8cfb 100644 --- a/gdb/x86-nat.c +++ b/gdb/x86-nat.c @@ -46,6 +46,18 @@ struct x86_dr_low_type x86_dr_low; static std::unordered_map x86_debug_process_state; +/* See x86-nat.h. */ + +struct x86_debug_reg_state * +x86_lookup_debug_reg_state (pid_t pid) +{ + auto it = x86_debug_process_state.find (pid); + if (it != x86_debug_process_state.end ()) + return &it->second; + + return nullptr; +} + /* Get debug registers state for process PID. */ struct x86_debug_reg_state * diff --git a/gdb/x86-nat.h b/gdb/x86-nat.h index 913291a2305..d9c2a3f6e14 100644 --- a/gdb/x86-nat.h +++ b/gdb/x86-nat.h @@ -40,6 +40,11 @@ extern void x86_set_debug_register_length (int len); extern void x86_cleanup_dregs (void); +/* Return the debug register state for process PID. If no existing + state is found for this process, return nullptr. */ + +struct x86_debug_reg_state *x86_lookup_debug_reg_state (pid_t pid); + /* Called whenever GDB is no longer debugging process PID. It deletes data structures that keep track of debug register state. */ -- 2.30.2