亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? postmort.c

?? 操作系統源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
  buff[9] = '$';  (void) binary((int) uc, buff + 10);  /* Print all the information */  printf("Stack Frame:\tPC = %04.4x\t\t   PSW = %s\n",         sp->pc, buff);  printf("\t\t\t\t\tStatus = ____ ODIT SZ_A _P_C\n");  printf("  ax	bx	cx	dx	di	si\n");  printf("  %04.4x\t%04.4x\t%04.4x\t%04.4x\t%04.4x\t%04.4x\n",         sp->retreg, sp->bx, sp->cx, sp->dx, sp->di, sp->si);  printf("  sp	bp	ss\n");  printf("  %04.4x\t%04.4x\t%04.4x\n",         sp->sp, sp->fp, sp->ss);  printf("  cs	ds	es\n");  printf("  %04.4x\t%04.4x\t%04.4x\n",         sp->cs, sp->ds, sp->es);  /* Store for future reference */  stackptr = sp->sp;  baseptr = sp->fp;  if (dbglvl > 0)	printf("\nStack pointer 0x%x, Base pointer 0x%x\n", stackptr, baseptr);}/* M a i n * * Main program */main(argc, argv)int argc;char *argv[];{  int j, fdc, fds;  char *cp, corefile[132], symbfile[132];  struct proc proc_entry;  struct mem_map mp_segs[NR_SEGS];  /* Initial set up */  if ((cp = strrchr(argv[0], '/')) == (char *) NULL)	cp = argv[0];  else	cp++;  strncpy(progname, cp, 19);  strncpy(corefile, CORE, 131);  strncpy(symbfile, AOUT, 131);  /* Parse arguments */  opterr = 0;  while ((j = getopt(argc, argv, "c:dps:tx:")) != EOF) {	switch (j & 0177) {	    case 'c':		opt_c = TRUE;		strncpy(corefile, optarg, 131);		break;	    case 'd':	opt_d = TRUE;	break;	    case 'p':	opt_p = TRUE;	break;	    case 's':		opt_s = TRUE;		strncpy(symbfile, optarg, 131);		break;	    case 't':	opt_t = TRUE;	break;	    case 'x':		dbglvl = atoi(optarg);		opt_x = TRUE;		break;	    case '?':	    default:		usage();		exit(1);		break;	}  }  /* We must have a core file */  if ((fdc = open(corefile, O_RDONLY)) == -1) {	fprintf(stderr, "Cannot open %s\n", corefile);	exit(1);  }  /* We'd like an a.out file or a symbol table */  if ((fds = open(symbfile, O_RDONLY)) == -1) {	if (opt_s)		j = FAILED;	else {		strncpy(symbfile, AOUT, 131);		if ((fds = open(symbfile, O_RDONLY)) == -1)			j = FAILED;		else			j = read_symbol(fds);	}  } else	j = read_symbol(fds);  /* Only fatal if we insisted */  if (opt_s && j == FAILED) {	fprintf(stderr, "Cannot find symbols in %s\n", symbfile);	exit(1);  }  /* Read the process table */  if (dbglvl > 0) {	printf("\n");	printf("Size of mproc entry %d\n", NR_SEGS * sizeof(struct mem_map));	printf("Size of process table %d\n", sizeof(proc_entry));  }  if (read(fdc, (char *) mp_segs, sizeof(mp_segs)) != sizeof(mp_segs) ||      read(fdc, (char *) &proc_entry,	 sizeof(struct proc)) != sizeof(struct proc)) {	fprintf(stderr, "Cannot open %s\n", corefile);	exit(1);  }  /* Do the work */#if 0  dump_maps(mp_segs);		/* duplicated in the kernel */  printf("\n");#endif  dump_maps(proc_entry.p_map);  printf("\n");  dump_registers(&proc_entry);  if (opt_t) {	printf("\n");	stack_trace(fdc);  }  if (opt_p) {	printf("\n");	dump_proc_table(&proc_entry);  }  if (opt_d) {	printf("\n");	dump_sym_tab(symtab);	dump_all_segs(fdc);  }  /* Wrap up */  (void) close(fdc);  if (fds != -1) (void) close(fds);  exit(0);  /* NOTREACHED */}/* P a r s e _ l i n e * * Parse a line of the symbol table */int parse_line(ps)char *ps;{  char c, s[80];  int j, k;  unsigned int u;  /* We must have space in the table */  if (maxsym == MAXSYM) return(FAILED);  /* Lines must be a minimum length to contain information */  if (strlen(ps) < 8) return(FAILED);  /* Lines must have a definite structure */  if (ps[1] != ' ' || ps[6] != ' ') return(FAILED);  for (j = 2; j < 6; j++)	if (!isxdigit(ps[j])) return(FAILED);  if (sscanf(ps, "%c %x %s", &c, &u, s) != 3) return (FAILED);  if (dbglvl > 0) printf("Address 0x%04.4x, label %s\n", u, s);  /* Load the symbol table in sorted order */  for (j = 0; j < maxsym; j++) {	if (u < symtab[j].addr) {		for (k = maxsym; k > j; k--) symtab[k] = symtab[k - 1];		break;	}  }  symtab[j].addr = u;  strncpy(symtab[j].label, s, SYMLEN);  maxsym++;  return(OK);}/* R e a d _ s y m b o l * * Read the symbol table */int read_symbol(fd)int fd;{  char sym[80], buff[BUFSIZ];  int j, k, m;  long int offset;  struct exec *ep;  struct nlist *np;  /* We collect only text symbols, since that's all that's needed here */  /* Initialise the buffer */  if ((j = read(fd, buff, BUFSIZ)) == 0 || j == -1) return(FAILED);  k = maxsym = 0;  /* Find out what we've got */  ep = (struct exec *) buff;  np = (struct nlist *) buff;  if (BADMAG(*ep)) {	/* Must be a separate symbol table */	while (TRUE) {		if (buff[k] == 'T') {			for (m = 0; m < 78; m++) {				sym[m] = buff[k];				if (++k == j) {					if ((j = read(fd, buff, BUFSIZ)) == 0 || j == -1)						break;					k = 0;				}				if (buff[k] == '\n') break;			}			sym[m + 1] = '\0';			(void) parse_line(sym);		}		if (++k == j) {			if ((j = read(fd, buff, BUFSIZ)) == 0 || j == -1)				break;			k = 0;		}	}  } else if (ep->a_syms != 0L) {	/* There's symbols in them thar hills */	offset = 8 * sizeof(long) + ep->a_text + ep->a_data;	if (lseek(fd, offset, 0) == -1L) return(FAILED);	/* Symbols are in an unsorted list */	while (read(fd, buff, sizeof(struct nlist)) == sizeof(struct nlist)) {		if (np->n_sclass == (N_TEXT + C_EXT)) {	/* external text symbols */			for (j = 0; j < maxsym; j++) {				if (np->n_value < symtab[j].addr) {					for (k = maxsym; k > j; k--)						symtab[k] = symtab[k - 1];					break;				}			}			symtab[j].addr = np->n_value;			strncpy(symtab[j].label, np->n_name, SYMLEN);			if (maxsym++ == MAXSYM) break;		}	}  } else if (opt_s)	return(FAILED);  if (dbglvl > 0) {	for (m = 0; m < maxsym; m++) printf("Addr 0x%04.4x, label %s\n",		       symtab[m].addr, symtab[m].label);	printf("Maxsym %d\n", maxsym);  }  return(OK);}/* S t a c k _ t r a c e * * Trace back down the stack frames. * * WARNING: very, very, non-portable code */void stack_trace(fd)int fd;{  int j;  unsigned int framepointer, lastpointer, returnvalue, end;  long int offset, bp;  /* Bp actually gives the offset from the base of the data segment */  bp = (long) (NR_SEGS * sizeof(struct mem_map)) + sizeof(struct proc)	+ lengths[0] + lengths[1] - bases[2];  if ((offset = lseek(fd, bp + (long int) baseptr, 0)) == -1L) return;  end = (bases[2] + lengths[2] - 1) & 0xffff;  if (dbglvl > 0)	printf("Baseptr %x, End %x, Bp %ld, Offset %ld\n", baseptr, end, bp, offset);  /* Print the header, then try to backtrace  */  printf("Stack back trace:\n\n");  printf("Frame address.  Contents.  Return address.");  if (maxsym != 0) printf("  Previous label.");  printf("\n");  lastpointer = baseptr;  while (TRUE) {	/* Read the frame pointer and return address values */	if (read(fd, (char *) &framepointer, sizeof(int)) == -1 ||	    read(fd, (char *) &returnvalue, sizeof(int)) == -1)		break;	/* Look up the return address - ignored if maxsym == 0 */	for (j = 0; j < maxsym; j++) {		if (symtab[j].addr >= returnvalue) break;	}	if (j > 0) j--;	printf("    0x%04.4x        0x%04.4x      0x%04.4x          %s\n",	       lastpointer, framepointer, returnvalue,	       (maxsym == 0) ? "" : symtab[j].label);	/* If the result is clearly invalid, quit */	if (framepointer == 0 || framepointer >= end || framepointer <= lastpointer)		break;	/* Otherwise try to move to the next frame base */	lastpointer = framepointer;	if ((offset = lseek(fd, bp + (long int) framepointer, 0)) == -1L || offset == 0L)		break;  }}/* U s a g e * * Usage message */void usage(){  fprintf(stderr, "Usage: %s [-dpt] [-c corefile] [-s symbfile]\n", progname);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲少妇屁股交4| 精品毛片乱码1区2区3区| 国产精品丝袜一区| 91在线免费看| 亚洲va天堂va国产va久| 日韩一区二区免费高清| 国产高清一区日本| 一区二区三区在线看| 91超碰这里只有精品国产| 国产一区在线观看麻豆| 一级精品视频在线观看宜春院| 欧美日韩亚洲综合一区| 国产乱国产乱300精品| 亚洲欧美在线视频观看| 日本伦理一区二区| av亚洲精华国产精华精华| 日韩成人一区二区| 亚洲自拍都市欧美小说| 国产精品欧美久久久久一区二区 | 日韩美女天天操| 99精品视频在线免费观看| 九九热在线视频观看这里只有精品| 中文字幕一区不卡| 欧美激情综合网| 精品国产乱码久久| 7777精品伊人久久久大香线蕉的 | 国产亚洲精品7777| 日韩午夜电影av| 欧美一级在线免费| 欧美一区二区在线看| 欧美日韩国产综合草草| 欧美日韩国产大片| 欧美日韩亚洲综合在线| 777午夜精品免费视频| 欧美日本视频在线| 日韩一级免费一区| 久久新电视剧免费观看| 国产欧美日韩精品a在线观看| 中日韩av电影| 一区二区激情小说| 青青草原综合久久大伊人精品| 麻豆国产一区二区| 99久久婷婷国产| 欧美性做爰猛烈叫床潮| 欧美大度的电影原声| 久久女同性恋中文字幕| 亚洲欧洲综合另类在线| 午夜一区二区三区在线观看| 日本视频免费一区| 成人精品国产一区二区4080| 成人白浆超碰人人人人| 日韩欧美专区在线| 亚洲少妇屁股交4| 国产精品影视天天线| 欧美电影一区二区三区| 久久久蜜臀国产一区二区| 午夜婷婷国产麻豆精品| 成人av网址在线| 国产视频在线观看一区二区三区| 亚洲国产精品精华液网站| 91在线视频播放地址| 欧美激情综合五月色丁香| 欧美aⅴ一区二区三区视频| 99精品一区二区| 精品一区二区在线视频| av亚洲精华国产精华精华 | 亚洲综合偷拍欧美一区色| 久久日一线二线三线suv| 日韩理论片中文av| 精品国产乱码久久久久久浪潮| 中文字幕一区二区三区在线播放 | 天天综合网 天天综合色| zzijzzij亚洲日本少妇熟睡| 国产午夜精品一区二区三区四区| 日韩精品乱码av一区二区| 91精品国产欧美一区二区18| 国产精品久久久久久久第一福利| 日韩成人精品在线观看| 欧美老肥妇做.爰bbww视频| 亚洲免费色视频| 91久久线看在观草草青青 | 夜夜嗨av一区二区三区网页| 波波电影院一区二区三区| 中文字幕在线观看一区二区| 99热在这里有精品免费| 亚洲免费观看高清完整版在线观看熊| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品欧美久久久久无广告 | 成人午夜电影网站| 亚洲女人****多毛耸耸8| 欧美日韩国产影片| 国产成人av网站| 亚洲综合视频在线| 欧美大胆一级视频| 日本高清视频一区二区| 亚洲制服丝袜一区| 精品国产一区a| 91官网在线观看| 国产电影一区在线| 秋霞av亚洲一区二区三| 亚洲欧洲日韩在线| 欧美精品一区在线观看| 欧美日韩日日骚| 99久久国产综合精品麻豆| 国内欧美视频一区二区| 视频一区二区不卡| 一区二区三区在线高清| 久久免费午夜影院| 日韩精品在线看片z| 欧美久久久影院| 欧美最猛性xxxxx直播| 成人激情免费网站| 国产成人亚洲精品狼色在线| 亚洲午夜电影在线| 一区二区成人在线| 亚洲人吸女人奶水| 中文字幕亚洲精品在线观看 | 国产一区二区三区在线观看精品 | 精品视频在线看| 在线亚洲一区观看| 欧美日韩亚洲综合一区| 精品视频一区二区不卡| 69堂国产成人免费视频| 日韩免费看的电影| 国产精品无遮挡| 日韩精品一区第一页| 高清在线不卡av| 91猫先生在线| 欧美视频在线一区| 欧美v国产在线一区二区三区| 欧美福利电影网| 亚洲精品一区二区三区蜜桃下载| 国产欧美日产一区| 亚洲国产日韩av| 国产在线不卡一卡二卡三卡四卡| 成人福利视频网站| 欧美一区二视频| 亚洲成人精品影院| 亚洲私人影院在线观看| 国产精品毛片久久久久久| 国产精品你懂的| 国产精品剧情在线亚洲| 久久久久久久久免费| 日韩欧美资源站| 7777精品久久久大香线蕉| 欧美日韩国产高清一区二区| 欧美人妇做爰xxxⅹ性高电影| 在线播放91灌醉迷j高跟美女 | 国产乱子轮精品视频| 91老师国产黑色丝袜在线| 久久亚洲二区三区| 亚洲成a人片在线不卡一二三区| 成人激情黄色小说| 日韩免费观看高清完整版| 日韩电影在线免费观看| 91久久香蕉国产日韩欧美9色| 久久久久久**毛片大全| 国产福利精品导航| 国产欧美一区二区三区沐欲| 免费在线看一区| 欧美xxxx老人做受| 久久国产精品第一页| 精品国产伦一区二区三区免费| 亚洲一区在线观看视频| 欧美性猛交xxxx黑人交| 日韩中文字幕亚洲一区二区va在线| 在线视频国内一区二区| ...中文天堂在线一区| 99re8在线精品视频免费播放| 一区二区三区欧美| 在线播放中文一区| 亚洲va欧美va人人爽午夜 | 美女性感视频久久| 中文字幕不卡三区| 欧美在线影院一区二区| 老司机精品视频导航| 欧美韩国日本不卡| 97久久超碰精品国产| 亚洲成人777| 亚洲精品v日韩精品| 精品国产乱码久久久久久免费| av激情亚洲男人天堂| 亚洲成人自拍偷拍| 国产精品天美传媒| 精品国产伦一区二区三区观看体验| 色综合中文字幕国产 | 色欧美日韩亚洲| 久久99久久精品欧美| 中文字幕中文字幕中文字幕亚洲无线 | 久久精品国产在热久久| 亚洲专区一二三| 亚洲自拍偷拍图区| 中文字幕不卡的av| 中文字幕av一区二区三区免费看 | 色婷婷综合激情| 国产九色精品成人porny| 天天综合色天天综合| 亚洲精品久久7777| 亚洲综合无码一区二区| 中文字幕中文在线不卡住|