mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 20:49:43 +00:00
Changes to hexdump "struct user" for child process on some configurations
that use ptrace(). This is not as useful as doing a full dump in a human readable format, but is better than nothing when you are trying to verify what is actually in the user struct. * infptrace.c (udot_info): New function. (PT_*): Define each individually if that one is not defined. Update copyright to 1996. * rs6000-nat.c (kernel_u_size): New function Include <sys/user.h> for "struct user" Update copyright to 1996. * alpha-nat.c (kernel_u_size): New function. Include <sys/user.h> for "struct user" Update copyright to 1996. * sparc-nat.c (kernel_u_size): New function. Include <sys/user.h> for "struct user" Update copyright to 1996. * i386b-nat.c (kernel_u_size): New function. Update copyright to 1996. * i386v-nat.c (kernel_u_size): New function. Update copyright to 1996. * config/i386/nm-fbsd.h (KERNEL_U_SIZE): Define. (kernel_u_size): Declare. Update copyright to 1996. * config/i386/nm-linux.h (KERNEL_U_SIZE): Define. (kernel_u_size): Declare. Update copyright to 1996. * config/sparc/nm-sun4os4.h (KERNEL_U_SIZE): Define. (kernel_u_size): Declare. Update copyright to 1996. * config/alpha/nm-osf2.h (KERNEL_U_SIZE): Define. (kernel_u_size): Declare. Update copyright to 1996. * config/rs6000/nm-rs6000.h (KERNEL_U_SIZE): Define. (kernel_u_size): Declare. Update copyright to 1996.
This commit is contained in:
parent
5c5e420c9b
commit
7531f36e8e
@ -1,3 +1,37 @@
|
||||
Thu Jan 4 10:44:17 1996 Fred Fish <fnf@cirdan.cygnus.com>
|
||||
|
||||
* infptrace.c (udot_info): New function.
|
||||
(PT_*): Define each individually if that one is not defined.
|
||||
Update copyright to 1996.
|
||||
* rs6000-nat.c (kernel_u_size): New function
|
||||
Include <sys/user.h> for "struct user"
|
||||
Update copyright to 1996.
|
||||
* alpha-nat.c (kernel_u_size): New function.
|
||||
Include <sys/user.h> for "struct user"
|
||||
Update copyright to 1996.
|
||||
* sparc-nat.c (kernel_u_size): New function.
|
||||
Include <sys/user.h> for "struct user"
|
||||
Update copyright to 1996.
|
||||
* i386b-nat.c (kernel_u_size): New function.
|
||||
Update copyright to 1996.
|
||||
* i386v-nat.c (kernel_u_size): New function.
|
||||
Update copyright to 1996.
|
||||
* config/i386/nm-fbsd.h (KERNEL_U_SIZE): Define.
|
||||
(kernel_u_size): Declare.
|
||||
Update copyright to 1996.
|
||||
* config/i386/nm-linux.h (KERNEL_U_SIZE): Define.
|
||||
(kernel_u_size): Declare.
|
||||
Update copyright to 1996.
|
||||
* config/sparc/nm-sun4os4.h (KERNEL_U_SIZE): Define.
|
||||
(kernel_u_size): Declare.
|
||||
Update copyright to 1996.
|
||||
* config/alpha/nm-osf2.h (KERNEL_U_SIZE): Define.
|
||||
(kernel_u_size): Declare.
|
||||
Update copyright to 1996.
|
||||
* config/rs6000/nm-rs6000.h (KERNEL_U_SIZE): Define.
|
||||
(kernel_u_size): Declare.
|
||||
Update copyright to 1996.
|
||||
|
||||
Thu Jan 4 11:00:01 1996 steve chamberlain <sac@slash.cygnus.com>
|
||||
|
||||
* mdebugread.c (mylookup_symbol): enum namespace becomes
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Low level Alpha interface, for GDB when running native.
|
||||
Copyright 1993, 1995 Free Software Foundation, Inc.
|
||||
Copyright 1993, 1995, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "target.h"
|
||||
#include <sys/ptrace.h>
|
||||
#include <machine/reg.h>
|
||||
#include <sys/user.h>
|
||||
|
||||
/* Size of elements in jmpbuf */
|
||||
|
||||
@ -143,6 +144,12 @@ register_addr (regno, blockend)
|
||||
return REGISTER_PTRACE_ADDR (regno);
|
||||
}
|
||||
|
||||
int
|
||||
kernel_u_size ()
|
||||
{
|
||||
return (sizeof (struct user));
|
||||
}
|
||||
|
||||
#ifdef USE_PROC_FS
|
||||
#include <sys/procfs.h>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Macro definitions for running gdb on a Sun 4 running sunos 4.
|
||||
Copyright (C) 1989, 1992, Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1992, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -25,3 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define FETCH_INFERIOR_REGISTERS
|
||||
|
||||
/* Return sizeof user struct to callers in less machine dependent routines */
|
||||
|
||||
#define KERNEL_U_SIZE kernel_u_size()
|
||||
extern int kernel_u_size PARAMS ((void));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Native-dependent code for BSD Unix running on i386's, for GDB.
|
||||
Copyright 1988, 1989, 1991, 1992, 1994 Free Software Foundation, Inc.
|
||||
Copyright 1988, 1989, 1991, 1992, 1994, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -222,4 +222,10 @@ i386_float_info ()
|
||||
print_387_status (0, (struct env387 *)buf);
|
||||
}
|
||||
|
||||
int
|
||||
kernel_u_size ()
|
||||
{
|
||||
return (sizeof (struct user));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Intel 386 native support for SYSV systems (pre-SVR4).
|
||||
Copyright (C) 1988, 1989, 1991, 1992, 1994 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 1989, 1991, 1992, 1994, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -93,6 +93,12 @@ i386_register_u_addr (blockend, regnum)
|
||||
|
||||
}
|
||||
|
||||
int
|
||||
kernel_u_size ()
|
||||
{
|
||||
return (sizeof (struct user));
|
||||
}
|
||||
|
||||
#ifdef TARGET_HAS_HARDWARE_WATCHPOINTS
|
||||
|
||||
#if !defined (offsetof)
|
||||
|
@ -1,6 +1,5 @@
|
||||
/* Low level Unix child interface to ptrace, for GDB when running under Unix.
|
||||
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995
|
||||
Free Software Foundation, Inc.
|
||||
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -16,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "defs.h"
|
||||
#include "frame.h"
|
||||
@ -41,20 +40,33 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#endif
|
||||
#endif /* NO_PTRACE_H */
|
||||
|
||||
#if !defined (PT_KILL)
|
||||
#define PT_KILL 8
|
||||
#if !defined (PT_READ_I)
|
||||
#define PT_READ_I 1 /* Read word from text space */
|
||||
#endif
|
||||
#if !defined (PT_READ_D)
|
||||
#define PT_READ_D 2 /* Read word from data space */
|
||||
#endif
|
||||
#if !defined (PT_READ_U)
|
||||
#define PT_READ_U 3 /* Read word from kernel user struct */
|
||||
#endif
|
||||
#if !defined (PT_WRITE_I)
|
||||
#define PT_WRITE_I 4 /* Write word to text space */
|
||||
#endif
|
||||
#if !defined (PT_WRITE_D)
|
||||
#define PT_WRITE_D 5 /* Write word to data space */
|
||||
#endif
|
||||
#if !defined (PT_WRITE_U)
|
||||
#define PT_WRITE_U 6 /* Write word to kernel user struct */
|
||||
#endif
|
||||
#if !defined (PT_CONTINUE)
|
||||
#define PT_CONTINUE 7 /* Continue after signal */
|
||||
#endif
|
||||
|
||||
#if !defined (PT_STEP)
|
||||
#define PT_STEP 9
|
||||
#define PT_CONTINUE 7
|
||||
#define PT_READ_U 3
|
||||
#define PT_WRITE_U 6
|
||||
#define PT_READ_I 1
|
||||
#define PT_READ_D 2
|
||||
#define PT_WRITE_I 4
|
||||
#define PT_WRITE_D 5
|
||||
#endif /* No PT_STEP. */
|
||||
#define PT_STEP 9 /* Set flag for single stepping */
|
||||
#endif
|
||||
#if !defined (PT_KILL)
|
||||
#define PT_KILL 8 /* Send child a SIGKILL signal */
|
||||
#endif
|
||||
|
||||
#ifndef PT_ATTACH
|
||||
#define PT_ATTACH PTRACE_ATTACH
|
||||
@ -460,4 +472,59 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
udot_info ()
|
||||
{
|
||||
int udot_off; /* Offset into user struct */
|
||||
int udot_val; /* Value from user struct at udot_off */
|
||||
char mess[128]; /* For messages */
|
||||
|
||||
if (!target_has_execution)
|
||||
{
|
||||
error ("The program is not being run.");
|
||||
}
|
||||
|
||||
#if !defined (KERNEL_U_SIZE)
|
||||
|
||||
/* Adding support for this command is easy. Typically you just add a
|
||||
routine, called "kernel_u_size" that returns the size of the user
|
||||
struct, to the appropriate *-nat.c file and then add to the native
|
||||
config file "#define KERNEL_U_SIZE kernel_u_size()" */
|
||||
error ("Don't know how large ``struct user'' is in this version of gdb.");
|
||||
|
||||
#else
|
||||
|
||||
for (udot_off = 0; udot_off < KERNEL_U_SIZE; udot_off += sizeof (udot_val))
|
||||
{
|
||||
if ((udot_off % 24) == 0)
|
||||
{
|
||||
if (udot_off > 0)
|
||||
{
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
printf_filtered ("%04x:", udot_off);
|
||||
}
|
||||
udot_val = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) udot_off, 0);
|
||||
if (errno != 0)
|
||||
{
|
||||
sprintf (mess, "\nreading user struct at offset 0x%x", udot_off);
|
||||
perror_with_name (mess);
|
||||
}
|
||||
/* Avoid using nonportable (?) "*" in print specs */
|
||||
printf_filtered (sizeof (int) == 4 ? " 0x%08x" : " 0x%16x", udot_val);
|
||||
}
|
||||
printf_filtered ("\n");
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
_initialize_infptrace ()
|
||||
{
|
||||
add_info ("udot", udot_info,
|
||||
"Print contents of kernel ``struct user'' for current child.");
|
||||
|
||||
}
|
||||
#endif /* !defined (CHILD_XFER_MEMORY). */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* IBM RS/6000 native-dependent code for GDB, the GNU debugger.
|
||||
Copyright 1986, 1987, 1989, 1991, 1992, 1994, 1995
|
||||
Copyright 1986, 1987, 1989, 1991, 1992, 1994, 1995, 1996
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
@ -787,3 +787,10 @@ xcoff_relocate_core (target)
|
||||
breakpoint_re_set ();
|
||||
do_cleanups (old);
|
||||
}
|
||||
|
||||
int
|
||||
kernel_u_size ()
|
||||
{
|
||||
return (sizeof (struct user));
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Functions specific to running gdb native on a SPARC running SunOS4.
|
||||
Copyright 1989, 1992, 1993, 1994 Free Software Foundation, Inc.
|
||||
Copyright 1989, 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/wait.h>
|
||||
#include <machine/reg.h>
|
||||
#include <sys/user.h>
|
||||
|
||||
/* We don't store all registers immediately when requested, since they
|
||||
get sent over in large chunks anyway. Instead, we accumulate most
|
||||
@ -295,3 +296,8 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, ignore)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
kernel_u_size ()
|
||||
{
|
||||
return (sizeof (struct user));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user