This commit is contained in:
Andreas Jaeger 2002-03-27 11:10:10 +00:00
parent 6e97d56408
commit 88218ca246
5 changed files with 22 additions and 34 deletions

View File

@ -134,10 +134,10 @@ struct sigcontext
unsigned long rsp; unsigned long rsp;
unsigned long rip; unsigned long rip;
unsigned long eflags; unsigned long eflags;
unsigned short cs, __csh; unsigned short cs;
unsigned short gs, __gsh; unsigned short gs;
unsigned short fs, __fsh; unsigned short fs;
unsigned int __pad0; unsigned short __pad0;
unsigned long err; unsigned long err;
unsigned long trapno; unsigned long trapno;
unsigned long oldmask; unsigned long oldmask;

View File

@ -67,7 +67,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
static void static void
register_dump (int fd, struct sigcontext *ctx) register_dump (int fd, struct sigcontext *ctx)
{ {
char regs[29][16]; char regs[25][16];
char fpregs[30][8]; char fpregs[30][8];
char xmmregs[16][32]; char xmmregs[16][32];
struct iovec iov[147]; struct iovec iov[147];
@ -104,16 +104,13 @@ register_dump (int fd, struct sigcontext *ctx)
hexvalue (ctx->eflags, regs[17], 8); hexvalue (ctx->eflags, regs[17], 8);
hexvalue (ctx->cs, regs[18], 4); hexvalue (ctx->cs, regs[18], 4);
hexvalue (ctx->ds, regs[19], 4); hexvalue (ctx->fs, regs[19], 4);
hexvalue (ctx->es, regs[20], 4); hexvalue (ctx->gs, regs[20], 4);
hexvalue (ctx->fs, regs[21], 4);
hexvalue (ctx->gs, regs[22], 4);
/* hexvalue (ctx->ss, regs[23], 4); */ /* hexvalue (ctx->ss, regs[23], 4); */
hexvalue (ctx->trapno, regs[24], 8); hexvalue (ctx->trapno, regs[21], 8);
hexvalue (ctx->err, regs[25], 8); hexvalue (ctx->err, regs[22], 8);
hexvalue (ctx->oldmask, regs[26], 8); hexvalue (ctx->oldmask, regs[23], 8);
hexvalue (ctx->rsp_at_signal, regs[27], 16); hexvalue (ctx->cr2, regs[24], 8);
hexvalue (ctx->cr2, regs[28], 8);
/* Generate the output. */ /* Generate the output. */
ADD_STRING ("Register dump:\n\n RAX: "); ADD_STRING ("Register dump:\n\n RAX: ");
@ -154,28 +151,22 @@ register_dump (int fd, struct sigcontext *ctx)
ADD_MEM (regs[17], 8); ADD_MEM (regs[17], 8);
ADD_STRING ("\n\n CS: "); ADD_STRING ("\n\n CS: ");
ADD_MEM (regs[18], 4); ADD_MEM (regs[18], 4);
ADD_STRING (" DS: ");
ADD_MEM (regs[19], 4);
ADD_STRING (" ES: ");
ADD_MEM (regs[20], 4);
ADD_STRING (" FS: "); ADD_STRING (" FS: ");
ADD_MEM (regs[21], 4); ADD_MEM (regs[19], 4);
ADD_STRING (" GS: "); ADD_STRING (" GS: ");
ADD_MEM (regs[22], 4); ADD_MEM (regs[20], 4);
/* /*
ADD_STRING (" SS: "); ADD_STRING (" SS: ");
ADD_MEM (regs[23], 4); ADD_MEM (regs[23], 4);
*/ */
ADD_STRING ("\n\n Trap: "); ADD_STRING ("\n\n Trap: ");
ADD_MEM (regs[24], 8); ADD_MEM (regs[21], 8);
ADD_STRING (" Error: "); ADD_STRING (" Error: ");
ADD_MEM (regs[25], 8); ADD_MEM (regs[22], 8);
ADD_STRING (" OldMask: "); ADD_STRING (" OldMask: ");
ADD_MEM (regs[26], 8); ADD_MEM (regs[23], 8);
ADD_STRING ("\n RSP/signal: ");
ADD_MEM (regs[27], 8);
ADD_STRING (" CR2: "); ADD_STRING (" CR2: ");
ADD_MEM (regs[28], 8); ADD_MEM (regs[24], 8);
if (ctx->fpstate != NULL) if (ctx->fpstate != NULL)
{ {

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2001 Free Software Foundation, Inc. /* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,7 @@
#define SIGCONTEXT_EXTRA_ARGS #define SIGCONTEXT_EXTRA_ARGS
#define GET_PC(ctx) ((void *) ctx.rip) #define GET_PC(ctx) ((void *) ctx.rip)
#define GET_FRAME(ctx) ((void *) ctx.rbp) #define GET_FRAME(ctx) ((void *) ctx.rbp)
#define GET_STACK(ctx) ((void *) ctx.rsp_at_signal) #define GET_STACK(ctx) ((void *) ctx.rsp)
#define CALL_SIGHANDLER(handler, signo, ctx) \ #define CALL_SIGHANDLER(handler, signo, ctx) \
(handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))

View File

@ -33,7 +33,7 @@
typedef long int greg_t; typedef long int greg_t;
/* Number of general registers. */ /* Number of general registers. */
#define NGREG 27 #define NGREG 21
/* Container for all general registers. */ /* Container for all general registers. */
typedef greg_t gregset_t[NGREG]; typedef greg_t gregset_t[NGREG];
@ -78,10 +78,8 @@ enum
# define REG_RIP REG_RIP # define REG_RIP REG_RIP
REG_EFL, REG_EFL,
# define REG_EFL REG_EFL # define REG_EFL REG_EFL
REG_CSGS, /* Actually short cs, __csh, gs, __gsh. */ REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */
# define REG_CSGS REG_CSGS # define REG_CSGSFS REG_CSGSFS
REG_FS, /* Actually short gs, __fsh, pad. */
# define REG_FS REG_FS
REG_ERR, REG_ERR,
# define REG_ERR REG_ERR # define REG_ERR REG_ERR
REG_TRAPNO REG_TRAPNO

View File

@ -13,7 +13,6 @@ getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64
setrlimit - setrlimit i:ip __setrlimit setrlimit64 setrlimit setrlimit - setrlimit i:ip __setrlimit setrlimit64 setrlimit
ftruncate - ftruncate i:ii __ftruncate ftruncate ftruncate64 __ftruncate64 ftruncate - ftruncate i:ii __ftruncate ftruncate ftruncate64 __ftruncate64
truncate - truncate i:si truncate truncate64 truncate - truncate i:si truncate truncate64
ptrace - ptrace i:iipp __ptrace ptrace
# semaphore and shm system calls # semaphore and shm system calls
msgctl - msgctl i:iip __msgctl msgctl msgctl - msgctl i:iip __msgctl msgctl