aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan J. Williams <nathanw@wasabisystems.com>2004-08-07 21:52:15 +0000
committerNathan J. Williams <nathanw@wasabisystems.com>2004-08-07 21:52:15 +0000
commitda7d81e3861d91b055a4bc75a5d1372f0c025e36 (patch)
tree42e97b64580bd9db9af356592a54b0cf4ddc943a
parent7f245d65f70913f51bfd1cb4f49822801ca6ecc9 (diff)
downloadfsf-binutils-gdb-da7d81e3861d91b055a4bc75a5d1372f0c025e36.zip
fsf-binutils-gdb-da7d81e3861d91b055a4bc75a5d1372f0c025e36.tar.gz
fsf-binutils-gdb-da7d81e3861d91b055a4bc75a5d1372f0c025e36.tar.bz2
* configure.in: Test for struct lwp in <sys/lwp.h>
* bsd-kvm.c (bsd_kvm_proc_cmd): If HAVE_STRUCT_LWP is defined, use the offset of l_addr in struct lwp.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/bsd-kvm.c4
-rw-r--r--gdb/configure.in10
3 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a19c0a7..b20391a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2004-08-07 Nathan J. Williams <nathanw@wasabisystems.com>
+ * configure.in: Test for struct lwp in <sys/lwp.h>.
+ * bsd-kvm.c (bsd_kvm_proc_cmd): If HAVE_STRUCT_LWP is defined, use
+ the offset of l_addr in struct lwp.
+
+2004-08-07 Nathan J. Williams <nathanw@wasabisystems.com>
+
* bsd-kvm.c: Include "gdbcore.h"
(bsd_kvm_open): Use get_exec_file() to set 'execfile'.
diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c
index 45ce561..083bc92 100644
--- a/gdb/bsd-kvm.c
+++ b/gdb/bsd-kvm.c
@@ -230,7 +230,11 @@ bsd_kvm_proc_cmd (char *arg, int fromtty)
error ("No kernel memory image.");
addr = parse_and_eval_address (arg);
+#ifdef HAVE_STRUCT_LWP
+ addr += offsetof (struct lwp, l_addr);
+#else
addr += offsetof (struct proc, p_addr);
+#endif
if (kvm_read (core_kd, addr, &bsd_kvm_paddr, sizeof bsd_kvm_paddr) == -1)
error ("%s", kvm_geterr (core_kd));
diff --git a/gdb/configure.in b/gdb/configure.in
index 2a2714b..6eac761 100644
--- a/gdb/configure.in
+++ b/gdb/configure.in
@@ -553,6 +553,16 @@ if test $gdb_cv_struct_thread_td_pcb = yes; then
[Define to 1 if your system has td_pcb in struct thread.])
fi
+# See if <sys/lwp.h> defines `struct lwp`.
+AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
+[AC_TRY_COMPILE([#include <sys/param.h>
+#include <sys/lwp.h>], [struct lwp l;],
+gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
+if test $gdb_cv_struct_lwp = yes; then
+ AC_DEFINE(HAVE_STRUCT_LWP, 1,
+ [Define to 1 if your system has struct lwp.])
+fi
+
# See if <machine/reg.h> degines `struct reg'.
AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
[AC_TRY_COMPILE([#include <sys/types.h>