本文整理汇总了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,
®->offset,
®->size,
®->window,
®->depth);
reg_cnt++;
}
}
print_regs(1);
print_regs(2);
printf("Device:%s %d:reg descriptions read\n",dev_name, reg_cnt);
}
示例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);
}
示例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);
}
}
示例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();
}
示例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);
}
示例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;
}
}
示例7: update_regs
/// Update processor context
void update_regs()
{
gotoxy(REGS_X, REGS_Y);
print_regs(&p);
dissassemble(&p);
printf("%s \n", asm_m);
}
示例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);
}
}
示例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();
}
}
示例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);
}
示例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;
}
示例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;
}
示例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);
}
示例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));
}
示例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);
}