当前位置: 首页>>代码示例>>C++>>正文


C++ print_regs函数代码示例

本文整理汇总了C++中print_regs函数的典型用法代码示例。如果您正苦于以下问题:C++ print_regs函数的具体用法?C++ print_regs怎么用?C++ print_regs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了print_regs函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: read_regs

void read_regs(char *name) {

int i, j;
char fn[32], txt[128], c, *cp;
FILE *nf = NULL;
struct regdesc *reg;

   if (regs) return;
   bzero((void *) fn, 32);
   for (i=0; i<31; i++) {
      if (i<strlen(name)) fn[i]=toupper(name[i]);
      else break;
   }

   strcat(fn,".regs");
   nf = fopen(GetFile(fn),"r");
   if (nf == NULL) {
      printf("%s:not available\n",fn);
      return;
   }

   while (1) {
      if (fgets(txt,128,nf) == NULL) break;
      cp = "NAME";
      if (strncmp(cp, txt, strlen(cp)) == 0) {
	 cp = &txt[strlen(cp)];
	 bzero((void *) dev_name, 32);
	 for (i=0, j=0; i<31; i++) {
	    c = *cp++;
	    if ((c == '\n') ||  (c == 0)) break;
	    if (isspace(c)) continue;
	    dev_name[j++] = c;
	 }
      }
      if (strncmp("$", txt, 1) == 0) {
	 reg = new_reg();

	 sscanf(txt,"$ %s %s 0x%X %d %d %d",
		reg->name,
		reg->flags,
		&reg->offset,
		&reg->size,
		&reg->window,
		&reg->depth);
	 reg_cnt++;
      }
   }
   print_regs(1);
   print_regs(2);
   printf("Device:%s %d:reg descriptions read\n",dev_name, reg_cnt);
}
开发者ID:dcobas,项目名称:coht,代码行数:51,代码来源:VmeioCmds.c

示例2: print_exception_info

static void print_exception_info(struct exc_state *state, uint64_t idx)
{
	if (idx < NUM_EXC_VIDS)
		printk(BIOS_DEBUG, "exception %s\n", exception_names[idx]);

	print_regs(state);
}
开发者ID:RafaelRMachado,项目名称:Coreboot,代码行数:7,代码来源:exception.c

示例3: print_trapframe

void
print_trapframe(struct trapframe *tf) {
    cprintf("trapframe at %p\n", tf);
    print_regs(&tf->tf_regs);
    cprintf("  ds   0x----%04x\n", tf->tf_ds);
    cprintf("  es   0x----%04x\n", tf->tf_es);
    cprintf("  fs   0x----%04x\n", tf->tf_fs);
    cprintf("  gs   0x----%04x\n", tf->tf_gs);
    cprintf("  trap 0x%08x %s\n", tf->tf_trapno, trapname(tf->tf_trapno));
    cprintf("  err  0x%08x\n", tf->tf_err);
    cprintf("  eip  0x%08x\n", tf->tf_eip);
    cprintf("  cs   0x----%04x\n", tf->tf_cs);
    cprintf("  flag 0x%08x ", tf->tf_eflags);

    int i, j;
    for (i = 0, j = 1; i < sizeof(IA32flags) / sizeof(IA32flags[0]); i ++, j <<= 1) {
        if ((tf->tf_eflags & j) && IA32flags[i] != NULL) {
            cprintf("%s,", IA32flags[i]);
        }
    }
    cprintf("IOPL=%d\n", (tf->tf_eflags & FL_IOPL_MASK) >> 12);

    if (!trap_in_kernel(tf)) {
        cprintf("  esp  0x%08x\n", tf->tf_esp);
        cprintf("  ss   0x----%04x\n", tf->tf_ss);
    }
}
开发者ID:dwt136,项目名称:ucore_lab,代码行数:27,代码来源:pmm.c

示例4: __faultE

static void __faultE(uint32 number,
            regs r, uint32 error,
            uint32 eip, uint32 cs, uint32 eflags)
{
    uint32 _cr2, _cr3;

    kprintf("");
    kprintf("*** Exception 0x%X* (%s)",number,etable[number]);
#ifdef __SMP__
    if (smp_configured)
      kprintf ("      on cpu#%d", smp_my_cpu ());
#endif
    print_regs(&r, eip, cs, eflags);
    
    asm("mov %%cr2, %0":"=r" (_cr2));    
    asm("mov %%cr3, %0":"=r" (_cr3));
    kprintf("   cr2 = %x   cr3 = %x error = %x",_cr2,_cr3,error);
    kprintf("");
    kprintf("Task %d (%s) crashed.",current->rsrc.id,current->rsrc.name);

	if((cs & 0xFFF8) == SEL_UCODE) user_debug(&r, &eip, &eflags);
	
#ifdef DEBUG_ON_FAULT
    current->flags = tDEAD;
    k_debugger(&r, eip, cs, eflags);
#endif
    
#ifdef HALT_ON_FAULT
    asm("hlt");
#endif    
    
    terminate();    
}
开发者ID:danilaslau,项目名称:frotznet,代码行数:33,代码来源:fault.c

示例5: print_frame

void print_frame(struct frame *tf)
{
	STATIC_INIT_SPIN_LOCK(pflock);
	spin_lock(&pflock);
	printk("TRAP frame at %p from CPU %d\n", tf, get_cpuid());
	print_regs(&tf->tf_regs);
	printk("  es   0x----%04x\n", tf->tf_es);
	printk("  ds   0x----%04x\n", tf->tf_ds);
	printk("  trap 0x%08x %s\n", tf->tf_trapno, trapname(tf->tf_trapno));
	// If this trap was a page fault that just happened
	// (so %cr2 is meaningful), print the faulting linear address.
	if (tf->tf_trapno == T_PGFLT)
		printk("  cr2  0x%08x\n", rcr2());
	printk("  err  0x%08x", tf->tf_err);
	// For page faults, print decoded fault error code:
	// U/K=fault occurred in user/kernel mode
	// W/R=a write/read caused the fault
	// PR=a protection violation caused the fault (NP=page not present).
	if (tf->tf_trapno == T_PGFLT)
		printk(" [%s, %s, %s]\n",
			tf->tf_err & 4 ? "user" : "kernel",
			tf->tf_err & 2 ? "write" : "read",
			tf->tf_err & 1 ? "protection" : "not-present");
	else
		printk("\n");
	printk("  eip  0x%08x\n", tf->tf_eip);
	printk("  cs   0x----%04x\n", tf->tf_cs);
	printk("  flag 0x%08x\n", tf->tf_eflags);
	if ((tf->tf_cs & 3) != 0) {
		printk("  esp  0x%08x\n", tf->tf_esp);
		printk("  ss   0x----%04x\n", tf->tf_ss);
	}
	spin_unlock(&pflock);
}
开发者ID:Zhang626,项目名称:miniOS,代码行数:34,代码来源:interrupt.c

示例6: k_debugger

void k_debugger(regs *r,uint32 eip, uint32 cs, uint32 eflags)
{
    char *line;
    uint32 n;
	
    kprintf("OpenBLT Kernel Debugger");

    for(;;){
        krefresh();
        line = kgetline(linebuf,80);

		if(!strncmp(line,"pgroup ",7)) { dumppgroup(readnum(line+7)); continue; }
        if(!strncmp(line,"resource ", 9)) { dumponersrc(line+9); continue; }
        if(!strcmp(line,"resources")) { dumprsrc(&resource_list); continue; }
		if(!strncmp(line,"queue ",6)) { dumpqueue(readnum(line+6)); continue; }
        if(!strcmp(line,"tasks")) { dumptasks(); continue; }
        if(!strcmp(line,"ports")) { dumpports(); continue; }
        if(!strcmp(line,"memory")) { memory_status(); continue; }
        if(!strcmp(line,"trace")) { trace(r->ebp,eip); continue; }
        if(!strcmp(line,"regs")) { print_regs(r,eip,cs,eflags); continue; }
        if(!strncmp(line,"dump ",5)) { dump(readnum(line+5),16); continue; }
        if(!strncmp(line,"aspace ",7)) { dumpaddr(readnum(line+7)); continue; }
        if(!strcmp(line,"reboot")) { reboot(); }
        if(!strncmp(line,"checksum ",9)) { checksum(line+9); continue; }
		if(!strncmp(line,"team ",5)) { dumpteam(readnum(line+5)); continue; }
		if(!strncmp(line,"find ",5)) { findpage(readnum(line+5)); continue; }
		if(!strcmp(line,"teams")) { dumpteams(); continue; }
		
        if(!strcmp(line,"exit")) break;
        if(!strcmp(line,"x")) break;
        if(!strcmp(line,"c")) break;
    }
}
开发者ID:danilaslau,项目名称:frotznet,代码行数:33,代码来源:debug.c

示例7: update_regs

/// Update processor context
void update_regs()
{
	gotoxy(REGS_X, REGS_Y);
	print_regs(&p);
	dissassemble(&p);
	printf("%s                  \n", asm_m);
}
开发者ID:VahidHeidari,项目名称:NES_DEV,代码行数:8,代码来源:main.c

示例8: print_trapframe

void
print_trapframe(struct Trapframe *tf)
{
	cprintf("TRAP frame at %p\n", tf);
	print_regs(&tf->tf_regs);
	cprintf("  es   0x----%04x\n", tf->tf_es);
	cprintf("  ds   0x----%04x\n", tf->tf_ds);
	cprintf("  trap 0x%08x %s\n", tf->tf_trapno, trapname(tf->tf_trapno));
	// If this trap was a page fault that just happened
	// (so %cr2 is meaningful), print the faulting linear address.
	if (tf == last_tf && tf->tf_trapno == T_PGFLT)
		cprintf("  cr2  0x%08x\n", rcr2());
	cprintf("  err  0x%08x", tf->tf_err);
	// For page faults, print decoded fault error code:
	// U/K=fault occurred in user/kernel mode
	// W/R=a write/read caused the fault
	// PR=a protection violation caused the fault (NP=page not present).
	if (tf->tf_trapno == T_PGFLT)
		cprintf(" [%s, %s, %s]\n",
			tf->tf_err & 4 ? "user" : "kernel",
			tf->tf_err & 2 ? "write" : "read",
			tf->tf_err & 1 ? "protection" : "not-present");
	else
		cprintf("\n");
	cprintf("  eip  0x%08x\n", tf->tf_eip);
	cprintf("  cs   0x----%04x\n", tf->tf_cs);
	cprintf("  flag 0x%08x\n", tf->tf_eflags);
	if ((tf->tf_cs & 3) != 0) {
		cprintf("  esp  0x%08x\n", tf->tf_esp);
		cprintf("  ss   0x----%04x\n", tf->tf_ss);
	}
}
开发者ID:Xmagicer,项目名称:6.828mit,代码行数:32,代码来源:trap.c

示例9: __fault

static void __fault(uint32 number,
           regs r,
           uint32 eip, uint32 cs, uint32 eflags)
{

    kprintf("");
    kprintf("*** Exception 0x%X (%s)",number,etable[number]);
    print_regs(&r, eip, cs, eflags);

    kprintf("");
    kprintf("Task %d (%s) crashed.",current->rsrc.id,current->rsrc.name);
	
	if((cs & 0xFFF8) == SEL_UCODE) user_debug(&r, &eip, &eflags);
	
#ifdef DEBUG_ON_FAULT
    if(number != 2){
        current->flags = tDEAD;
    }
    k_debugger(&r, eip, cs, eflags);
#endif
#ifdef HALT_ON_FAULT
    asm("hlt");
#endif    
    if(number != 2){
        terminate();    
    }
}
开发者ID:danilaslau,项目名称:frotznet,代码行数:27,代码来源:fault.c

示例10: print_exception_info

static void print_exception_info(struct exc_state *state, uint64_t idx)
{
	if (idx < NUM_EXC_VIDS)
		printk(BIOS_DEBUG, "exception %s\n", exception_names[idx]);

	print_regs(state);
	/* Few words below SP in case we need state from a returned function. */
	dump_stack(state->regs.sp - 32, 512);
}
开发者ID:AdriDlu,项目名称:coreboot,代码行数:9,代码来源:exception.c

示例11: vce_abort

static int vce_abort(void *device_id, mm_job_post_t *job)
{
	struct vce_device_t *id = (struct vce_device_t *)device_id;

	pr_info("vce_abort:\n");
	print_regs(id);
	vce_reset(id);

	return 0;
}
开发者ID:TheNikiz,项目名称:android_kernel_samsung_hawaii,代码行数:10,代码来源:vce.c

示例12: dbg_ricoh_show

static int dbg_ricoh_show(struct seq_file *s, void *unused)
{
	struct ricoh618 *ricoh = s->private;
	struct i2c_client *client = ricoh->client;

	seq_printf(s, "RICOH618 Registers\n");
	seq_printf(s, "------------------\n");

	print_regs("System Regs",		s, client, 0x0, 0x05);
	print_regs("Power Control Regs",	s, client, 0x07, 0x2B);
	print_regs("DCDC  Regs",		s, client, 0x2C, 0x43);
	print_regs("LDO   Regs",		s, client, 0x44, 0x5C);
	print_regs("ADC   Regs",		s, client, 0x64, 0x8F);
	print_regs("GPIO  Regs",		s, client, 0x90, 0x9B);
	print_regs("INTC  Regs",		s, client, 0x9C, 0x9E);
	print_regs("OPT   Regs",		s, client, 0xB0, 0xB1);
	print_regs("CHG   Regs",		s, client, 0xB2, 0xDF);
	print_regs("FUEL  Regs",		s, client, 0xE0, 0xFC);
	return 0;
}
开发者ID:xuanhoa9985,项目名称:KERNEL-NPM801,代码行数:20,代码来源:ricoh618.c

示例13: print_trapframe

void print_trapframe(struct trapframe *tf)
{
	kprintf("trapframe at %p\n", tf);
	print_regs(&tf->tf_regs);
	kprintf("  usr_lr   0x%08x\n", tf->__tf_user_lr);
	kprintf("  sp   0x%08x\n", tf->tf_esp);
	kprintf("  lr   0x%08x\n", tf->tf_epc);
	kprintf("  spsr 0x%08x %s\n", tf->tf_sr, modenames[tf->tf_sr & 0xF]);
	kprintf("  trap 0x%08x %s\n", tf->tf_trapno, trapname(tf->tf_trapno));
	kprintf("  err  0x%08x\n", tf->tf_err);
}
开发者ID:XinYao1994,项目名称:TinyComputer,代码行数:11,代码来源:trap.c

示例14: print_trapframe

void
print_trapframe(struct trapframe *tf) {
    cprintf("trapframe at %p\n", tf);
    print_regs(&tf->tf_regs);
    cprintf("  LO           0x----%08x\n", tf->tf_LO);
    cprintf("  HI           0x----%08x\n", tf->tf_HI);
    cprintf("  Status       0x----%08x\n", tf->tf_Status);
    cprintf("  Cause        0x----%08x\n", tf->tf_Cause);
    cprintf("  EPC          0x----%08x\n", tf->tf_EPC);
    cprintf("  BadVAddr     0x----%08x\n", tf->tf_BadVAddr);

    cprintf("  Exception    %s\n", trapname((tf->tf_Cause & 0x0000007c) >> 2));
}
开发者ID:tjs12,项目名称:ComputerSystem2015,代码行数:13,代码来源:trap.c

示例15: print_trapframe

void
print_trapframe(struct Trapframe *tf)
{
	cprintf("TRAP frame at %p\n", tf);
	print_regs(&tf->tf_regs);
	cprintf("  es   0x----%04x\n", tf->tf_es);
	cprintf("  ds   0x----%04x\n", tf->tf_ds);
	cprintf("  trap 0x%08x %s\n", tf->tf_trapno, trapname(tf->tf_trapno));
	cprintf("  err  0x%08x\n", tf->tf_err);
	cprintf("  eip  0x%08x\n", tf->tf_eip);
	cprintf("  cs   0x----%04x\n", tf->tf_cs);
	cprintf("  flag 0x%08x\n", tf->tf_eflags);
	cprintf("  esp  0x%08x\n", tf->tf_esp);
	cprintf("  ss   0x----%04x\n", tf->tf_ss);
}
开发者ID:Hzwcode,项目名称:MIT-JOS,代码行数:15,代码来源:trap.c


注:本文中的print_regs函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。