diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2013-08-07 14:39:57 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2013-08-07 14:39:57 +0000 |
commit | b08ee99f15ab5b1a2bf4572f34fdd1322debecb8 (patch) | |
tree | 1ea1c86f2228d784f1d67c0c329f730200a88414 /gdb | |
parent | fecf803efafe6339bb45401ecbaef00b9a85295e (diff) | |
download | fsf-binutils-gdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.zip fsf-binutils-gdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.tar.gz fsf-binutils-gdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.tar.bz2 |
2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
* gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64
is defined.
* rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb.
(rs6000_ptrace32): Call ptrace64 instead of ptrace if present.
(rs6000_ptrace64): Call ptace64 instead of ptracex if present.
* configure.ac: Check for ptrace64.
* configure, config.in: Regenerate.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/config.in | 3 | ||||
-rwxr-xr-x | gdb/configure | 2 | ||||
-rw-r--r-- | gdb/configure.ac | 2 | ||||
-rw-r--r-- | gdb/gdb_ptrace.h | 10 | ||||
-rw-r--r-- | gdb/rs6000-nat.c | 10 |
6 files changed, 34 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 67f5cd4..e93af27 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,17 @@ 2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com> Ulrich Weigand <uweigand@de.ibm.com> + * gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64 + is defined. + * rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb. + (rs6000_ptrace32): Call ptrace64 instead of ptrace if present. + (rs6000_ptrace64): Call ptace64 instead of ptracex if present. + * configure.ac: Check for ptrace64. + * configure, config.in: Regenerate. + +2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com> + Ulrich Weigand <uweigand@de.ibm.com> + * aixthread.c: Call ptrace64 instead of ptracex if defined. Call ptrace64 instead of ptrace if defined. Add macro addr_ptr to take care of ptrace address argument. diff --git a/gdb/config.in b/gdb/config.in index 92c2789..76abd04 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -333,6 +333,9 @@ /* Define if <sys/procfs.h> has pstatus_t. */ #undef HAVE_PSTATUS_T +/* Define to 1 if you have the `ptrace64' function. */ +#undef HAVE_PTRACE64 + /* Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request. */ #undef HAVE_PTRACE_GETFPXREGS diff --git a/gdb/configure b/gdb/configure index 4833297..8067825 100755 --- a/gdb/configure +++ b/gdb/configure @@ -10181,7 +10181,7 @@ for ac_func in canonicalize_file_name realpath getrusage getuid getgid \ sigaction sigprocmask sigsetmask socketpair syscall \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ setrlimit getrlimit posix_madvise waitpid lstat \ - fdwalk pipe2 + fdwalk pipe2 ptrace64 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/gdb/configure.ac b/gdb/configure.ac index 48f37c8..667821f 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1166,7 +1166,7 @@ AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \ sigaction sigprocmask sigsetmask socketpair syscall \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ setrlimit getrlimit posix_madvise waitpid lstat \ - fdwalk pipe2]) + fdwalk pipe2 ptrace64]) AM_LANGINFO_CODESET # Check the return and argument types of ptrace. No canned test for diff --git a/gdb/gdb_ptrace.h b/gdb/gdb_ptrace.h index 5c2a433..053a718 100644 --- a/gdb/gdb_ptrace.h +++ b/gdb/gdb_ptrace.h @@ -135,7 +135,15 @@ extern PTRACE_TYPE_RET ptrace(); zero. */ #ifdef PTRACE_TYPE_ARG5 -# define ptrace(request, pid, addr, data) ptrace (request, pid, addr, data, 0) +# ifdef HAVE_PTRACE64 +# define ptrace(request, pid, addr, data) \ + ptrace64 (request, pid, addr, data, 0) +# undef PTRACE_TYPE_ARG3 +# define PTRACE_TYPE_ARG3 long long +# else +# define ptrace(request, pid, addr, data) \ + ptrace (request, pid, addr, data, 0) +# endif #endif #endif /* gdb_ptrace.h */ diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index 6769618..0953356 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -65,7 +65,7 @@ /* In 32-bit compilation mode (which is the only mode from which ptrace() works on 4.3), __ld_info32 is #defined as equivalent to ld_info. */ -#ifdef __ld_info32 +#if defined (__ld_info32) || defined (__ld_info64) # define ARCH3264 #endif @@ -131,7 +131,11 @@ regmap (struct gdbarch *gdbarch, int regno, int *isfloat) static int rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf) { + #ifdef HAVE_PTRACE64 + int ret = ptrace64 (req, id, (long long) addr, data, buf); + #else int ret = ptrace (req, id, (int *)addr, data, buf); + #endif #if 0 printf ("rs6000_ptrace32 (%d, %d, 0x%x, %08x, 0x%x) = 0x%x\n", req, id, (unsigned int)addr, data, (unsigned int)buf, ret); @@ -145,7 +149,11 @@ static int rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf) { #ifdef ARCH3264 + #ifdef HAVE_PTRACE64 + int ret = ptrace64 (req, id, addr, data, buf); + #else int ret = ptracex (req, id, addr, data, buf); + #endif #else int ret = 0; #endif |