Use PTRACE_PEEKUSER to get fs_base/gs_base

* amd64-linux-nat.c: Include <sys/user.h>.
	(ps_get_thread_area): Use PTRACE_PEEKUSER to get fs_base/gs_base
	if HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE or
	HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE is defined.

	* configure.ac: Check if the fs_base and gs_base members of
	`struct user_regs_struct' exist.
	* config.in: Regenerated.
	* configure: Likewise.
This commit is contained in:
H.J. Lu
2012-06-26 14:43:01 +00:00
parent a4fd3de5d3
commit 6fea9e186c
5 changed files with 80 additions and 0 deletions

View File

@@ -1274,6 +1274,12 @@ fi
AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
[#include <machine/reg.h>])
# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
# Older amd64 Linux's don't have the fs_base and gs_base members of
# `struct user_regs_struct'.
AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base],
[], [], [#include <sys/user.h>])
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
AC_MSG_CHECKING(for PTRACE_GETREGS)
AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,