aboutsummaryrefslogtreecommitdiff
path: root/gdb/x86-linux-nat.c
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2015-03-24 14:05:44 +0000
committerGary Benson <gbenson@redhat.com>2015-03-24 14:05:44 +0000
commit4b134ca10812e550d8d012cd6096f5229d59f7c6 (patch)
treebb8a594f30a8d3053e61854c64b99df715b12ee6 /gdb/x86-linux-nat.c
parent34c703da6cb01d8b41e1bfb790c3c2c625088b69 (diff)
downloadfsf-binutils-gdb-4b134ca10812e550d8d012cd6096f5229d59f7c6.zip
fsf-binutils-gdb-4b134ca10812e550d8d012cd6096f5229d59f7c6.tar.gz
fsf-binutils-gdb-4b134ca10812e550d8d012cd6096f5229d59f7c6.tar.bz2
Make lwp_info.arch_private handling shared
This commit moves the code to handle lwp_info.arch_private for Linux x86 into a new shared file, nat/x86-linux.c. gdb/ChangeLog: * nat/x86-linux.h: New file. * nat/x86-linux.c: Likewise. * Makefile.in (HFILES_NO_SRCDIR): Add nat/x86-linux.h. (x86-linux.o): New rule. * config/i386/linux.mh (NATDEPFILES): Add x86-linux.o. * config/i386/linux64.mh (NATDEPFILES): Likewise. * nat/linux-nat.h (struct arch_lwp_info): New forward declaration. (lwp_set_arch_private_info): New declaration. (lwp_arch_private_info): Likewise. * linux-nat.c (lwp_set_arch_private_info): New function. (lwp_arch_private_info): Likewise. * x86-linux-nat.c: Include nat/x86-linux.h. (arch_lwp_info): Removed structure. (update_debug_registers_callback): Use lwp_set_debug_registers_changed. (x86_linux_prepare_to_resume): Use lwp_debug_registers_changed and lwp_set_debug_registers_changed. (x86_linux_new_thread): Use lwp_set_debug_registers_changed. gdb/gdbserver/ChangeLog: * Makefile.in (x86-linux.o): New rule. * configure.srv: Add x86-linux.o to relevant targets. * linux-low.c (lwp_set_arch_private_info): New function. (lwp_arch_private_info): Likewise. * linux-x86-low.c: Include nat/x86-linux.h. (arch_lwp_info): Removed structure. (update_debug_registers_callback): Use lwp_set_debug_registers_changed. (x86_linux_prepare_to_resume): Use lwp_debug_registers_changed and lwp_set_debug_registers_changed. (x86_linux_new_thread): Use lwp_set_debug_registers_changed.
Diffstat (limited to 'gdb/x86-linux-nat.c')
-rw-r--r--gdb/x86-linux-nat.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
index 74b48e3..10ccbd6 100644
--- a/gdb/x86-linux-nat.c
+++ b/gdb/x86-linux-nat.c
@@ -39,6 +39,7 @@
#include "x86-xstate.h"
#include "nat/linux-btrace.h"
#include "nat/linux-nat.h"
+#include "nat/x86-linux.h"
/* Per-thread arch-specific data we want to keep. */
@@ -133,12 +134,9 @@ x86_linux_dr_get_status (void)
static int
update_debug_registers_callback (struct lwp_info *lwp, void *arg)
{
- if (lwp->arch_private == NULL)
- lwp->arch_private = XCNEW (struct arch_lwp_info);
-
/* The actual update is done later just before resuming the lwp, we
just mark that the registers need updating. */
- lwp->arch_private->debug_registers_changed = 1;
+ lwp_set_debug_registers_changed (lwp, 1);
/* If the lwp isn't stopped, force it to momentarily pause, so we
can update its debug registers. */
@@ -181,13 +179,7 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
ptid_t ptid = ptid_of_lwp (lwp);
int clear_status = 0;
- /* NULL means this is the main thread still going through the shell,
- or, no watchpoint has been set yet. In that case, there's
- nothing to do. */
- if (lwp->arch_private == NULL)
- return;
-
- if (lwp->arch_private->debug_registers_changed)
+ if (lwp_debug_registers_changed (lwp))
{
struct x86_debug_reg_state *state
= x86_debug_reg_state (ptid_get_pid (ptid));
@@ -222,7 +214,7 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
if (state->dr_control_mirror != 0)
x86_linux_dr_set (ptid, DR_CONTROL, state->dr_control_mirror);
- lwp->arch_private->debug_registers_changed = 0;
+ lwp_set_debug_registers_changed (lwp, 0);
}
if (clear_status
@@ -233,11 +225,7 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
static void
x86_linux_new_thread (struct lwp_info *lp)
{
- struct arch_lwp_info *info = XCNEW (struct arch_lwp_info);
-
- info->debug_registers_changed = 1;
-
- lp->arch_private = info;
+ lwp_set_debug_registers_changed (lp, 1);
}