diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/bsd-kvm.c | 4 | ||||
-rw-r--r-- | gdb/configure.in | 10 |
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> |