diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-11-02 04:44:47 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-11-02 04:44:47 +0000 |
commit | 5c44784c11ecc8febfff615b88496c56c9ad5274 (patch) | |
tree | 74f9079f5b0ddae1182abf087af8adc02103e149 /gdb/gdbserver | |
parent | 9503fd8735ec438fcb2fca34afa276e3e6ca94f5 (diff) | |
download | gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.zip gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.gz gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.bz2 |
import gdb-1999-11-01 snapshot
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/Makefile.in | 5 | ||||
-rw-r--r-- | gdb/gdbserver/gdbreplay.c | 6 | ||||
-rw-r--r-- | gdb/gdbserver/low-hppabsd.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/low-linux.c | 354 | ||||
-rw-r--r-- | gdb/gdbserver/low-lynx.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/low-sim.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/low-sparc.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/low-sun3.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/remote-utils.c | 22 | ||||
-rw-r--r-- | gdb/gdbserver/server.c | 2 | ||||
-rw-r--r-- | gdb/gdbserver/server.h | 13 | ||||
-rw-r--r-- | gdb/gdbserver/utils.c | 4 |
12 files changed, 378 insertions, 43 deletions
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index d55050f..e714e32 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -89,9 +89,10 @@ READLINE_DEP = $$(READLINE_DIR) # All the includes used for CFLAGS and for lint. # -I. for config files. +# -I.. for gdb's config files (especially config.h) # -I${srcdir} possibly for regex.h also. # -I${srcdir}/config for more generic config files. -INCLUDE_CFLAGS = -I. -I${srcdir} -I${srcdir}/.. -I${srcdir}/../config -I$(INCLUDE_DIR) +INCLUDE_CFLAGS = -I. -I.. -I${srcdir} -I${srcdir}/.. -I${srcdir}/../config -I$(INCLUDE_DIR) # M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS # from the config/ directory. @@ -103,7 +104,7 @@ GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS} CFLAGS = -g # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. INTERNAL_CFLAGS = ${CFLAGS} ${GLOBAL_CFLAGS} ${PROFILE_CFLAGS} \ - ${BFD_CFLAGS} ${INCLUDE_CFLAGS} + ${INCLUDE_CFLAGS} ${BFD_CFLAGS} -DGDBSERVER # LDFLAGS is specifically reserved for setting from the command line # when running make. diff --git a/gdb/gdbserver/gdbreplay.c b/gdb/gdbserver/gdbreplay.c index 5773962..9e88a75 100644 --- a/gdb/gdbserver/gdbreplay.c +++ b/gdb/gdbserver/gdbreplay.c @@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "config.h" #include <stdio.h> #include <sys/file.h> #include <netinet/in.h> @@ -28,6 +29,7 @@ #include <signal.h> #include <ctype.h> #include <fcntl.h> +#include <errno.h> /* Sort of a hack... */ #define EOL (EOF - 1) @@ -42,10 +44,12 @@ void perror_with_name (string) char *string; { +#ifndef STDC_HEADERS extern int sys_nerr; extern char *sys_errlist[]; extern int errno; - char *err; +#endif + const char *err; char *combined; err = (errno < sys_nerr) ? sys_errlist[errno] : "unknown error"; diff --git a/gdb/gdbserver/low-hppabsd.c b/gdb/gdbserver/low-hppabsd.c index 3c28a38..7c1b660 100644 --- a/gdb/gdbserver/low-hppabsd.c +++ b/gdb/gdbserver/low-hppabsd.c @@ -34,7 +34,8 @@ /***************Begin MY defs*********************/ int quit_flag = 0; -char registers[REGISTER_BYTES]; +static char my_registers[REGISTER_BYTES]; +char *registers = my_registers; /* Index within `registers' of the first byte of the space for register N. */ diff --git a/gdb/gdbserver/low-linux.c b/gdb/gdbserver/low-linux.c index 32f10a1..b17e755 100644 --- a/gdb/gdbserver/low-linux.c +++ b/gdb/gdbserver/low-linux.c @@ -26,17 +26,16 @@ #include <stdio.h> #include <sys/param.h> #include <sys/dir.h> +#include <sys/ptrace.h> #include <sys/user.h> #include <signal.h> #include <sys/ioctl.h> -#if 0 -#include <sgtty.h> -#endif #include <fcntl.h> /***************Begin MY defs*********************/ int quit_flag = 0; -char registers[REGISTER_BYTES]; +static char my_registers[REGISTER_BYTES]; +char *registers = my_registers; /* Index within `registers' of the first byte of the space for register N. */ @@ -45,12 +44,15 @@ char registers[REGISTER_BYTES]; char buf2[MAX_REGISTER_RAW_SIZE]; /***************End MY defs*********************/ -#include <sys/ptrace.h> - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +#ifdef HAVE_SYS_REG_H #include <sys/reg.h> #endif +/* Default the type of the ptrace transfer to int. */ +#ifndef PTRACE_XFER_TYPE +#define PTRACE_XFER_TYPE int +#endif + extern char **environ; extern int errno; extern int inferior_pid; @@ -167,7 +169,42 @@ myresume (step, signal) - KERNEL_U_ADDR #endif -#ifndef TARGET_M68K +#ifdef I386_GNULINUX_TARGET +/* i386_register_raw_size[i] is the number of bytes of storage in the + actual machine representation for register i. */ +int i386_register_raw_size[MAX_NUM_REGS] = { + 4, 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, 4, + 10, 10, 10, 10, + 10, 10, 10, 10, + 4, 4, 4, 4, + 4, 4, 4, 4, + 16, 16, 16, 16, + 16, 16, 16, 16, + 4 +}; + +int i386_register_byte[MAX_NUM_REGS]; + +static void +initialize_arch() +{ + /* Initialize the table saying where each register starts in the + register file. */ + { + int i, offset; + + offset = 0; + for (i = 0; i < MAX_NUM_REGS; i++) + { + i386_register_byte[i] = offset; + offset += i386_register_raw_size[i]; + } + } +} + /* this table must line up with REGISTER_NAMES in tm-i386v.h */ /* symbols like 'EAX' come from <sys/reg.h> */ static int regmap[] = @@ -201,7 +238,13 @@ i386_register_u_addr (blockend, regnum) return (blockend + 4 * regmap[regnum]); } -#else /* TARGET_M68K */ +#elif defined(TARGET_M68K) +static void +initialize_arch() +{ + return; +} + /* This table must line up with REGISTER_NAMES in tm-m68k.h */ static int regmap[] = { @@ -231,6 +274,256 @@ m68k_linux_register_u_addr (blockend, regnum) { return (blockend + 4 * regmap[regnum]); } +/* start-sanitize-ia64 */ +#elif defined(IA64_GNULINUX_TARGET) +#undef NUM_FREGS +#define NUM_FREGS 0 + +#include <asm/ptrace_offsets.h> + +static int u_offsets[] = + { + /* general registers */ + -1, /* gr0 not available; i.e, it's always zero */ + PT_R1, + PT_R2, + PT_R3, + PT_R4, + PT_R5, + PT_R6, + PT_R7, + PT_R8, + PT_R9, + PT_R10, + PT_R11, + PT_R12, + PT_R13, + PT_R14, + PT_R15, + PT_R16, + PT_R17, + PT_R18, + PT_R19, + PT_R20, + PT_R21, + PT_R22, + PT_R23, + PT_R24, + PT_R25, + PT_R26, + PT_R27, + PT_R28, + PT_R29, + PT_R30, + PT_R31, + /* gr32 through gr127 not directly available via the ptrace interface */ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + /* Floating point registers */ + -1, -1, /* f0 and f1 not available (f0 is +0.0 and f1 is +1.0) */ + PT_F2, + PT_F3, + PT_F4, + PT_F5, + PT_F6, + PT_F7, + PT_F8, + PT_F9, + PT_F10, + PT_F11, + PT_F12, + PT_F13, + PT_F14, + PT_F15, + PT_F16, + PT_F17, + PT_F18, + PT_F19, + PT_F20, + PT_F21, + PT_F22, + PT_F23, + PT_F24, + PT_F25, + PT_F26, + PT_F27, + PT_F28, + PT_F29, + PT_F30, + PT_F31, + PT_F32, + PT_F33, + PT_F34, + PT_F35, + PT_F36, + PT_F37, + PT_F38, + PT_F39, + PT_F40, + PT_F41, + PT_F42, + PT_F43, + PT_F44, + PT_F45, + PT_F46, + PT_F47, + PT_F48, + PT_F49, + PT_F50, + PT_F51, + PT_F52, + PT_F53, + PT_F54, + PT_F55, + PT_F56, + PT_F57, + PT_F58, + PT_F59, + PT_F60, + PT_F61, + PT_F62, + PT_F63, + PT_F64, + PT_F65, + PT_F66, + PT_F67, + PT_F68, + PT_F69, + PT_F70, + PT_F71, + PT_F72, + PT_F73, + PT_F74, + PT_F75, + PT_F76, + PT_F77, + PT_F78, + PT_F79, + PT_F80, + PT_F81, + PT_F82, + PT_F83, + PT_F84, + PT_F85, + PT_F86, + PT_F87, + PT_F88, + PT_F89, + PT_F90, + PT_F91, + PT_F92, + PT_F93, + PT_F94, + PT_F95, + PT_F96, + PT_F97, + PT_F98, + PT_F99, + PT_F100, + PT_F101, + PT_F102, + PT_F103, + PT_F104, + PT_F105, + PT_F106, + PT_F107, + PT_F108, + PT_F109, + PT_F110, + PT_F111, + PT_F112, + PT_F113, + PT_F114, + PT_F115, + PT_F116, + PT_F117, + PT_F118, + PT_F119, + PT_F120, + PT_F121, + PT_F122, + PT_F123, + PT_F124, + PT_F125, + PT_F126, + PT_F127, + /* branch registers */ + PT_B0, + PT_B1, + PT_B2, + PT_B3, + PT_B4, + PT_B5, + PT_B6, + PT_B7, + /* other registers */ + PT_PR, + PT_CR_IIP, + PT_CR_IPSR, + /* kernel registers not visible via ptrace interface (?) */ + -1, -1, -1, -1, -1, -1, -1, -1, + /* hole */ + -1, -1, -1, -1, -1, -1, -1, -1, + PT_AR_RSC, + PT_AR_BSP, + PT_AR_BSPSTORE, + PT_AR_RNAT, + -1, + -1, /* Not available: FCR, IA32 floating control register */ + -1, -1, + -1, /* Not available: EFLAG */ + -1, /* Not available: CSD */ + -1, /* Not available: SSD */ + -1, /* Not available: CFLG */ + -1, /* Not available: FSR */ + -1, /* Not available: FIR */ + -1, /* Not available: FDR */ + -1, + PT_AR_CCV, + -1, -1, -1, + PT_AR_UNAT, + -1, -1, -1, + PT_AR_FPSR, + -1, -1, -1, + -1, /* Not available: ITC */ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + PT_AR_PFS, + PT_AR_LC, + -1, /* Not available: EC, the Epilog Count register */ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, + }; + +int +ia64_register_u_addr (int blockend, int regnum) +{ + int addr; + + if (regnum < 0 || regnum >= NUM_REGS) + error ("Invalid register number %d.", regnum); + + addr = u_offsets[regnum]; + if (addr == -1) + addr = 0; + + return addr; +} + +initialize_arch() +{ + return; +} +/* end-sanitize-ia64 */ #endif CORE_ADDR @@ -254,7 +547,7 @@ static void fetch_register (regno) int regno; { - register unsigned int regaddr; + CORE_ADDR regaddr; register int i; /* Offset of registers within the u area. */ @@ -263,12 +556,12 @@ fetch_register (regno) offset = U_REGS_OFFSET; regaddr = register_addr (regno, offset); - for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int)) + for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (PTRACE_XFER_TYPE)) { errno = 0; - *(int *) ®isters[regno * 4 + i] = ptrace (PTRACE_PEEKUSR, inferior_pid, - (PTRACE_ARG3_TYPE) regaddr, 0); - regaddr += sizeof (int); + *(PTRACE_XFER_TYPE *) ®isters[REGISTER_BYTE (regno) + i] = + ptrace (PTRACE_PEEKUSER, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, 0); + regaddr += sizeof (PTRACE_XFER_TYPE); if (errno != 0) { /* Warning, not error, in case we are attached; sometimes the @@ -304,8 +597,8 @@ void store_inferior_registers (regno) int regno; { - register unsigned int regaddr; - register int i; + CORE_ADDR regaddr; + int i; unsigned int offset = U_REGS_OFFSET; if (regno >= 0) @@ -335,7 +628,7 @@ store_inferior_registers (regno) for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int)) { errno = 0; - ptrace (PTRACE_POKEUSR, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, + ptrace (PTRACE_POKEUSER, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, *(int *) ®isters[REGISTER_BYTE (regno) + i]); if (errno != 0) { @@ -373,21 +666,23 @@ read_inferior_memory (memaddr, myaddr, len) { register int i; /* Round starting address down to longword boundary. */ - register CORE_ADDR addr = memaddr & -sizeof (int); + register CORE_ADDR addr = memaddr & -sizeof (PTRACE_XFER_TYPE); /* Round ending address up; get number of longwords that makes. */ - register int count - = (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int); + register int count + = (((memaddr + len) - addr) + sizeof (PTRACE_XFER_TYPE) - 1) + / sizeof (PTRACE_XFER_TYPE); /* Allocate buffer of that many longwords. */ - register int *buffer = (int *) alloca (count * sizeof (int)); + register PTRACE_XFER_TYPE *buffer + = (PTRACE_XFER_TYPE *) alloca (count * sizeof (PTRACE_XFER_TYPE)); /* Read all the longwords */ - for (i = 0; i < count; i++, addr += sizeof (int)) + for (i = 0; i < count; i++, addr += sizeof (PTRACE_XFER_TYPE)) { buffer[i] = ptrace (PTRACE_PEEKTEXT, inferior_pid, addr, 0); } /* Copy appropriate bytes out of the buffer. */ - memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (int) - 1)), len); + memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (PTRACE_XFER_TYPE) - 1)), len); } /* Copy LEN bytes of data from debugger memory at MYADDR @@ -403,12 +698,12 @@ write_inferior_memory (memaddr, myaddr, len) { register int i; /* Round starting address down to longword boundary. */ - register CORE_ADDR addr = memaddr & -sizeof (int); + register CORE_ADDR addr = memaddr & -sizeof (PTRACE_XFER_TYPE); /* Round ending address up; get number of longwords that makes. */ register int count - = (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int); + = (((memaddr + len) - addr) + sizeof (PTRACE_XFER_TYPE) - 1) / sizeof (PTRACE_XFER_TYPE); /* Allocate buffer of that many longwords. */ - register int *buffer = (int *) alloca (count * sizeof (int)); + register PTRACE_XFER_TYPE *buffer = (PTRACE_XFER_TYPE *) alloca (count * sizeof (PTRACE_XFER_TYPE)); extern int errno; /* Fill start and end extra bytes of buffer with existing memory data. */ @@ -419,16 +714,16 @@ write_inferior_memory (memaddr, myaddr, len) { buffer[count - 1] = ptrace (PTRACE_PEEKTEXT, inferior_pid, - addr + (count - 1) * sizeof (int), 0); + addr + (count - 1) * sizeof (PTRACE_XFER_TYPE), 0); } /* Copy data to be written over corresponding part of buffer */ - memcpy ((char *) buffer + (memaddr & (sizeof (int) - 1)), myaddr, len); + memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_XFER_TYPE) - 1)), myaddr, len); /* Write the entire buffer. */ - for (i = 0; i < count; i++, addr += sizeof (int)) + for (i = 0; i < count; i++, addr += sizeof (PTRACE_XFER_TYPE)) { errno = 0; ptrace (PTRACE_POKETEXT, inferior_pid, addr, buffer[i]); @@ -443,6 +738,7 @@ void initialize () { inferior_pid = 0; + initialize_arch(); } int diff --git a/gdb/gdbserver/low-lynx.c b/gdb/gdbserver/low-lynx.c index ecc3318..75e11ba 100644 --- a/gdb/gdbserver/low-lynx.c +++ b/gdb/gdbserver/low-lynx.c @@ -44,7 +44,8 @@ #include <sys/wait.h> #include <sys/fpp.h> -char registers[REGISTER_BYTES]; +static char my_registers[REGISTER_BYTES]; +char *registers = my_registers; #include <sys/ptrace.h> diff --git a/gdb/gdbserver/low-sim.c b/gdb/gdbserver/low-sim.c index ebd5f7d..3f9dea2 100644 --- a/gdb/gdbserver/low-sim.c +++ b/gdb/gdbserver/low-sim.c @@ -28,7 +28,8 @@ extern int remote_debug; extern host_callback default_callback; /* in sim/common/callback.c */ -char registers[REGISTER_BYTES] __attribute__ ((aligned)); +static char my_registers[REGISTER_BYTES] __attribute__ ((aligned)); +char * registers = my_registers; int target_byte_order; /* used by simulator */ diff --git a/gdb/gdbserver/low-sparc.c b/gdb/gdbserver/low-sparc.c index 9dd70a2..e0e635e 100644 --- a/gdb/gdbserver/low-sparc.c +++ b/gdb/gdbserver/low-sparc.c @@ -37,7 +37,8 @@ /***************Begin MY defs*********************/ int quit_flag = 0; -char registers[REGISTER_BYTES]; +static char my_registers[REGISTER_BYTES]; +char *registers = my_registers; /* Index within `registers' of the first byte of the space for register N. */ diff --git a/gdb/gdbserver/low-sun3.c b/gdb/gdbserver/low-sun3.c index 11f1d8a..786770b 100644 --- a/gdb/gdbserver/low-sun3.c +++ b/gdb/gdbserver/low-sun3.c @@ -34,7 +34,8 @@ /***************Begin MY defs*********************/ int quit_flag = 0; -char registers[REGISTER_BYTES]; +static char my_registers[REGISTER_BYTES]; +char *registers = my_registers; /* Index within `registers' of the first byte of the space for register N. */ diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 4dab2ab..cd078cc 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -201,7 +201,7 @@ putpkt (buf) { int i; unsigned char csum = 0; - char buf2[2000]; + char buf2[PBUFSIZ]; char buf3[1]; int cnt = strlen (buf); char *p; @@ -435,10 +435,13 @@ outreg (regno, buf) int regno; char *buf; { - extern char registers[]; int regsize = REGISTER_RAW_SIZE (regno); - *buf++ = tohex (regno >> 4); + if ((regno >> 12) != 0) + *buf++ = tohex ((regno >> 12) & 0xf); + if ((regno >> 8) != 0) + *buf++ = tohex ((regno >> 8) & 0xf); + *buf++ = tohex ((regno >> 4) & 0xf); *buf++ = tohex (regno & 0xf); *buf++ = ':'; convert_int_to_ascii (®isters[REGISTER_BYTE (regno)], buf, regsize); @@ -469,6 +472,18 @@ prepare_resume_reply (buf, status, signo) if (status == 'T') { +#ifdef GDBSERVER_RESUME_REGS + static int gdbserver_resume_regs[] = GDBSERVER_RESUME_REGS ; + int i; + for (i = 0; + i < sizeof (gdbserver_resume_regs) + / sizeof (gdbserver_resume_regs[0]); + i++) + { + int regnum = gdbserver_resume_regs[i]; + buf = outreg (regnum, buf); + } +#else /* !defined(GDBSERVER_RESUME_REGS) */ buf = outreg (PC_REGNUM, buf); buf = outreg (FP_REGNUM, buf); buf = outreg (SP_REGNUM, buf); @@ -478,6 +493,7 @@ prepare_resume_reply (buf, status, signo) #ifdef O7_REGNUM buf = outreg (O7_REGNUM, buf); #endif +#endif /* GDBSERVER_RESUME_REGS */ /* If the debugger hasn't used any thread features, don't burden it with threads. If we didn't check this, GDB 4.13 and older would choke. */ diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 66afb88..8b18f53 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -47,7 +47,7 @@ main (argc, argv) int argc; char *argv[]; { - char ch, status, own_buf[2000], mem_buf[2000]; + char ch, status, own_buf[PBUFSIZ], mem_buf[2000]; int i = 0; unsigned char signal; unsigned int len; diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index bfc89c7..c42a65c 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -36,7 +36,7 @@ int create_inferior (); /* Target-specific variables */ -extern char registers[]; +extern char *registers; /* Public variables in server.c */ @@ -71,3 +71,14 @@ void decode_M_packet PARAMS ((char *from, CORE_ADDR * mem_addr_ptr, /* Functions from utils.c */ void perror_with_name PARAMS ((char *string)); + + +/* Maximum number of bytes to read/write at once. The value here + is chosen to fill up a packet (the headers account for the 32). */ +#define MAXBUFBYTES(N) (((N)-32)/2) + +/* Buffer sizes for transferring memory, registers, etc. Round up PBUFSIZ to + hold all the registers, at least. */ +#define PBUFSIZ ((REGISTER_BYTES > MAXBUFBYTES (2000)) \ + ? (REGISTER_BYTES * 2 + 32) \ + : 2000) diff --git a/gdb/gdbserver/utils.c b/gdb/gdbserver/utils.c index ecff057..2603beb 100644 --- a/gdb/gdbserver/utils.c +++ b/gdb/gdbserver/utils.c @@ -32,10 +32,12 @@ void perror_with_name (string) char *string; { +#ifndef STDC_HEADERS extern int sys_nerr; extern char *sys_errlist[]; extern int errno; - char *err; +#endif + const char *err; char *combined; if (errno < sys_nerr) |