1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
Index: coregrind/vgdb.c
===================================================================
--- coregrind/vgdb.c (revision 13470)
+++ coregrind/vgdb.c (revision 13471)
@@ -100,11 +100,10 @@
#if defined(PTRACEINVOKER)
#include <sys/user.h>
#if defined(VGO_linux)
# include <sys/prctl.h>
-# include <linux/ptrace.h>
#endif
#endif
// Outputs information for the user about ptrace not working.
Index: coregrind/vgdb.c
===================================================================
--- coregrind/vgdb.c (revision 13481)
+++ coregrind/vgdb.c (revision 13482)
@@ -691,7 +691,7 @@
// runtime check not yet done.
// 0 : PTRACE_GETREGS runtime check has failed.
// 1 : PTRACE_GETREGS defined and runtime check ok.
-#ifdef PTRACE_GETREGS
+#ifdef HAVE_PTRACE_GETREGS
static int has_working_ptrace_getregs = -1;
#endif
@@ -702,7 +702,7 @@
Bool getregs (int pid, void *regs, long regs_bsz)
{
DEBUG(1, "getregs regs_bsz %ld\n", regs_bsz);
-# ifdef PTRACE_GETREGS
+# ifdef HAVE_PTRACE_GETREGS
if (has_working_ptrace_getregs) {
// Platforms having GETREGS
long res;
@@ -773,7 +773,7 @@
DEBUG(1, "setregs regs_bsz %ld\n", regs_bsz);
// Note : the below is checking for GETREGS, not SETREGS
// as if one is defined and working, the other one should also work.
-# ifdef PTRACE_GETREGS
+# ifdef HAVE_PTRACE_GETREGS
if (has_working_ptrace_getregs) {
// Platforms having SETREGS
long res;
Index: configure.in
===================================================================
--- configure.in (revision 13481)
+++ configure.in (revision 13482)
@@ -1040,6 +1040,25 @@
AM_CONDITIONAL([HAVE_GNU_STPNCPY], [test x$ac_have_gnu_stpncpy = xyes])
+# Check for PTRACE_GETREGS
+
+AC_MSG_CHECKING([for PTRACE_GETREGS])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <stddef.h>
+#include <sys/ptrace.h>
+#include <sys/user.h>
+]], [[
+ void *p;
+ long res = ptrace (PTRACE_GETREGS, 0, p, p);
+]])], [
+AC_MSG_RESULT([yes])
+AC_DEFINE([HAVE_PTRACE_GETREGS], 1,
+ [Define to 1 if you have the `PTRACE_GETREGS' ptrace request.])
+], [
+AC_MSG_RESULT([no])
+])
+
+
# Check for CLOCK_MONOTONIC
AC_MSG_CHECKING([for CLOCK_MONOTONIC])
|