diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-03-22 12:05:43 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-03-22 12:05:43 -0700 |
commit | b1babce7c31def7fb894875136788490b167f989 (patch) | |
tree | 7e79468da5548d20d6d802366a91a3adafb64544 | |
parent | 922c2fc18e4de33d24b6ba3b7b6e8732209a5e69 (diff) | |
download | gdb-b1babce7c31def7fb894875136788490b167f989.zip gdb-b1babce7c31def7fb894875136788490b167f989.tar.gz gdb-b1babce7c31def7fb894875136788490b167f989.tar.bz2 |
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.
-rw-r--r-- | gdb/x86-nat.c | 12 | ||||
-rw-r--r-- | gdb/x86-nat.h | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gdb/x86-nat.c b/gdb/x86-nat.c index c1e892b..36513dd 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<pid_t, struct x86_debug_reg_state> 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 913291a..d9c2a3f 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. */ |