From: Antoine Leca Date: Thu, 29 Mar 2012 12:15:42 +0000 (+0200) Subject: Drop obsolete sdump X-Git-Tag: v3.2.1~630 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/rndc-confgen.html?a=commitdiff_plain;h=d0b285643005943cd73d85d821779f55a24cc897;p=minix.git Drop obsolete sdump The code cannot be compiled, and is not included for over a year. And it creates a corefile which is obsolete. --- diff --git a/commands/sdump/Makefile b/commands/sdump/Makefile deleted file mode 100644 index cf6177c14..000000000 --- a/commands/sdump/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -PROG= sdump -CPPFLAGS+= -I${MINIXSRCDIR} -I${MINIXSRCDIR}/servers -MAN= - -.include diff --git a/commands/sdump/sdump.c b/commands/sdump/sdump.c deleted file mode 100644 index 1574f6ce0..000000000 --- a/commands/sdump/sdump.c +++ /dev/null @@ -1,192 +0,0 @@ -/* sdump - dump memory */ - -#include -#include -#include -#include -#include -#include -#include - -#undef EXTERN -#define EXTERN -#include -#include "pm/const.h" -#include "pm/type.h" -#include "pm/mproc.h" -#include "kernel/const.h" -#include "kernel/type.h" -#include "kernel/proc.h" -#undef printf /* printf was misdefined by the sys headers */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define STACK_BYTES 30000 - -char *default_core = "core"; -int stack[STACK_BYTES / sizeof (int)]; - -int main(int argc, char **argv); -void read_segmap(int fd, struct mproc *mp, long *seg_size); -void read_registers(int fd, struct proc *p); -void dump_stack(int fd, struct mproc *mp, long *seg_size); -void error(char *s1, char *s2); - -int main(argc, argv) -int argc; -char *argv[]; -{ - int fd; - long seg_size[NR_LOCAL_SEGS]; /* segment sizes in bytes */ - struct mproc *mp; - struct proc *p; - char *file; - - if (argc > 2) error("Usage: rdump [core_file]\n", ""); - - if (argc == 1) - file = default_core; - else - file = argv[1]; - - if ( (fd = open(file, O_RDONLY)) < 0) error("Cannot open", file); - - mp = &mproc[0]; - p = &proc[0]; - read_segmap(fd, mp, seg_size); - read_registers(fd, p); - dump_stack(fd, mp, seg_size); - return(0); -} - -void read_segmap(fd, mp, seg_size) -int fd; -struct mproc *mp; -long seg_size[NR_LOCAL_SEGS]; -{ - int i, segmap_size; - - /* Read in the segment map. */ - segmap_size = sizeof mp->mp_seg; - if (read(fd, (char *) mp, segmap_size) != segmap_size) - error("Cannot read segmap map from core image file", ""); - - for (i = 0; i < NR_LOCAL_SEGS; i++) - seg_size[i] = (long) mp->mp_seg[i].mem_len << CLICK_SHIFT; - printf("Seg sizes in bytes: Text: %ld Data: %ld, Stack: %ld\n", - seg_size[T], seg_size[D], seg_size[S]); -} - -void read_registers(fd, p) -int fd; -struct proc *p; -{ - int proctblsize; - struct stackframe_s r; - - proctblsize = sizeof (struct proc); - if (read(fd, (char *) p, proctblsize) != proctblsize) - error("Cannot read process table from core image file", ""); - r = p->p_reg; - - /* Print proc table. */ - printf("\n"); -#if (CHIP == INTEL) -#if _WORD_SIZE == 4 - printf("eax=%8lX ebx=%8lX ecx=%8lX edx=%8lX\n", - r.retreg, r.bx, r.cx, r.dx); - printf("esi=%8lX edi=%8lX ebp=%8lX esp=%8lX eip=%8lX\n", - r.si, r.di, r.fp, r.sp, r.pc); - printf(" ds=%8lX es=%8lX ss=%8lX cs=%8lX\n", - r.ds, r.es, r.ss, r.cs); - printf(" fs=%8lX gs=%8lX ef=%8lX\n", - r.fs, r.gs, r.psw); -#else - printf( -"ax=%4X bx=%4X cx=%4X dx=%4X si=%4X di=%4X bp=%4X sp=%4X ip=%4X\n", - r.retreg, r.bx, r.cx, r.dx, r.si, r.di, r.fp, r.sp, r.pc); - printf( -" f=%4X ds=%4X es=%4X ss=%4X cs=%4X\n", - r.psw, r.ds, r.es, r.ss, r.cs); -#endif -#endif /* (CHIP == INTEL) */ -#if (CHIP == M68000) - printf("pc=%8lx psw=%4x\n", r.pc, r.psw); - printf("d0=%8lx d1=%8lx d2=%8lx d3=%8lx\n", r.retreg, r.d1, r.d2, r.d3); - printf("d4=%8lx d5=%8lx d6=%8lx d7=%8lx\n", r.d4, r.d5, r.d6, r.d7); - printf("a0=%8lx a1=%8lx a2=%8lx a3=%8lx\n", r.a0, r.a1, r.a2, r.a3); - printf("a4=%8lx a5=%8lx a6=%8lx a7=%8lx\n", r.a4, r.a5, r.a6, r.sp); -#endif - printf("\n"); -} - -void dump_stack(fd, mp, seg_size) -int fd; -struct mproc *mp; -long seg_size[NR_LOCAL_SEGS]; -{ - unsigned char ch; - char format[32]; - int word, i, stack_size, j; - vir_bytes v, vi; - - /* Seek past text and data segments. */ - lseek(fd, seg_size[T] + seg_size[D], SEEK_CUR); - v = mp->mp_seg[S].mem_vir << CLICK_SHIFT; - - stack_size = (int) seg_size[S]; - if (stack_size != seg_size[S] || stack_size < 0 || stack_size > STACK_BYTES) - error("Stack too large", ""); - - /* Dump the stack. */ - if (read(fd, (char *) stack, stack_size) != stack_size) - error("Error reading stack from core file", ""); - -#define BYTES(num) ((unsigned) sizeof (num)) -#define DEC_DIGITS(num) (sizeof (num) <= 2 ? 6 : 11) /* for 16/32 bit num */ -#define HEX_DIGITS(num) (((unsigned) sizeof (num) * CHAR_BIT + 3) / 4) - - printf("%*s %*s %*s %*s\n", - HEX_DIGITS(vi), "Addr", - HEX_DIGITS(word), "Hex", - DEC_DIGITS(word), "Dec", - BYTES(word), "Char"); - - /* The format string depends messily on the size of various things. */ - strcpy(format, "%*"); - if (sizeof v > sizeof (int)) strcat(format, "l"); - strcat(format, "X: %*"); - if (sizeof word > sizeof (int)) strcat(format, "l"); - strcat(format, "X %*"); - if (sizeof word > sizeof (int)) strcat(format, "l"); - strcat(format, "d "); - - for (i = stack_size / sizeof (int) - 1, vi = v + stack_size - sizeof (int); - i >= 0; --i, vi -= sizeof (int)) { - word = stack[i]; - printf(format, - HEX_DIGITS(vi), vi, - HEX_DIGITS(word), word, - DEC_DIGITS(word), word); - for (j = 0; j < BYTES(word); ++j, word >>= CHAR_BIT) { - ch = (unsigned char) word; - if (!isprint(ch)) ch = '.'; - putchar(ch); - } - putchar('\n'); - } -} - -void error(s1, s2) -char *s1, *s2; -{ - printf("%s %s\n", s1, s2); - exit(1); -}