void show_stack(struct task_struct *task, unsigned long *sp) { unsigned long *stack; int i; if (sp == NULL) { if (task) sp = (unsigned long *) ((struct thread_info *) (task->stack))->cpu_context.r1; else sp = (unsigned long *)&sp; } stack = sp; printk(KERN_INFO "\nStack:\n "); for (i = 0; i < kstack_depth_to_print; i++) { if (kstack_end(sp)) break; if (i && ((i % 8) == 0)) printk("\n "); printk("%08lx ", *sp++); } printk("\n"); show_trace(task, stack); }
void show_stack(struct task_struct *task, unsigned long *sp) { unsigned long *stack, addr; int i; if (sp == NULL) { if (task) sp = (unsigned long*)task->thread.ksp; else sp = (unsigned long*)rdsp(); } stack = sp; printk("\nStack from %08lx:\n ", (unsigned long)stack); for (i = 0; i < kstack_depth_to_print; i++) { if (((long)stack & (THREAD_SIZE-1)) == 0) break; if (i && ((i % 8) == 0)) printk("\n "); if (__get_user(addr, stack)) { printk("Failing address 0x%lx\n", (unsigned long)stack); break; } stack++; printk("%08lx ", addr); } show_trace(sp); }
void show_stack(unsigned long * sp) { unsigned long *stack; int i; /* * debugging aid: "show_stack(NULL);" prints the * back trace for this cpu. */ if (sp==NULL) sp = (unsigned long*)&sp; stack = sp; printk("\n" KERN_CRIT "Stack Dump:\n"); printk(KERN_CRIT " " RFMT ": ", (unsigned long) stack); for (i=0; i < kstack_depth_to_print; i++) { if (((long) stack & (THREAD_SIZE-1)) == 0) break; if (i && ((i & 0x03) == 0)) printk("\n" KERN_CRIT " " RFMT ": ", (unsigned long) stack); printk(RFMT " ", *stack--); } printk("\n" KERN_CRIT "\n"); show_trace(sp); }
/* This recently started being used in arch-independent code too, as in * kernel/sched.c.*/ void show_stack(struct task_struct *task, unsigned long *esp) { unsigned long *stack; int i; if (esp == NULL) { if (task != current && task != NULL) { esp = (unsigned long *) KSTK_ESP(task); } else { esp = (unsigned long *) &esp; } } stack = esp; for(i = 0; i < kstack_depth_to_print; i++) { if (kstack_end(stack)) break; if (i && ((i % 8) == 0)) printk("\n "); printk("%08lx ", *stack++); } printk("Call Trace: \n"); show_trace(task, esp); }
void show_stack(struct task_struct *task, unsigned long *sp) { unsigned long *stack; int i; /* * debugging aid: "show_stack(NULL);" prints the * back trace for this cpu. */ if(sp==NULL) { if (task) sp = (unsigned long *)task->thread.sp; else sp=(unsigned long*)&sp; } stack = sp; for(i=0; i < kstack_depth_to_print; i++) { if (kstack_end(stack)) break; if (i && ((i % 4) == 0)) printk("\n "); printk("%08lx ", *stack++); } printk("\n"); show_trace(task, sp); }
void show_stack(struct task_struct *task, unsigned long *stack) { unsigned long *endstack, addr; int i; if (!stack) { if (task) stack = (unsigned long *)task->thread.ksp; else stack = (unsigned long *)&stack; } addr = (unsigned long)stack; endstack = (unsigned long *)PAGE_ALIGN(addr); printk(KERN_EMERG "Stack from %08lx:", (unsigned long)stack); for (i = 0; i < kstack_depth_to_print; i++) { if (stack + 1 > endstack) break; if (i % 8 == 0) printk("\n" KERN_EMERG " "); printk(" %08lx", *stack++); } show_trace(task, stack); }
void show_regs(struct pt_regs * regs) { unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L; printk("\n"); printk("Pid: %d, comm: %20s\n", current->pid, current->comm); printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id()); print_symbol("EIP is at %s\n", regs->eip); if (user_mode_vm(regs)) printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp); printk(" EFLAGS: %08lx %s (%s %.*s)\n", regs->eflags, print_tainted(), system_utsname.release, (int)strcspn(system_utsname.version, " "), system_utsname.version); printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", regs->eax,regs->ebx,regs->ecx,regs->edx); printk("ESI: %08lx EDI: %08lx EBP: %08lx", regs->esi, regs->edi, regs->ebp); printk(" DS: %04x ES: %04x\n", 0xffff & regs->xds,0xffff & regs->xes); cr0 = read_cr0(); cr2 = read_cr2(); cr3 = read_cr3(); cr4 = read_cr4_safe(); printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", cr0, cr2, cr3, cr4); show_trace(NULL, regs, ®s->esp); }
void show_stack(struct task_struct *task, unsigned long *stack) { unsigned long *endstack, addr; int i; /* Cannot call dump_bfin_trace_buffer() here as show_stack() is * called externally in some places in the kernel. */ if (!stack) { if (task) stack = (unsigned long *)task->thread.ksp; else stack = (unsigned long *)&stack; } addr = (unsigned long)stack; endstack = (unsigned long *)PAGE_ALIGN(addr); printk(KERN_NOTICE "Stack from %08lx:", (unsigned long)stack); for (i = 0; i < kstack_depth_to_print; i++) { if (stack + 1 > endstack) break; if (i % 8 == 0) printk("\n" KERN_NOTICE " "); printk(" %08lx", *stack++); } printk("\n"); show_trace(task, stack); }
void show_stack(struct task_struct *task, unsigned long *stack) { unsigned long *p, *endstack; int i; if (!stack) { if (task && task != current) /* We know this is a kernel stack, so this is the start/end */ stack = (unsigned long *)thread_saved_ksp(task); else stack = (unsigned long *)&stack; } endstack = (unsigned long *)(((unsigned long)stack + THREAD_SIZE - 1) & -THREAD_SIZE); pr_debug("Stack from %08lx:", (unsigned long)stack); for (i = 0, p = stack; i < kstack_depth_to_print; i++) { if (p + 1 > endstack) break; if (i % 8 == 0) pr_cont("\n "); pr_cont(" %08lx", *p++); } pr_cont("\n"); show_trace(stack, endstack); }
/* displays a short stack trace */ void show_stack(struct task_struct *task, unsigned long *esp) { unsigned long addr, *stack; int i; if (esp == NULL) esp = (unsigned long *)&esp; stack = esp; printk("Stack dump [0x%08lx]:\n", (unsigned long)esp); for (i = 0; i < kstack_depth_to_print; i++) { if (kstack_end(stack)) break; if (__get_user(addr, stack)) { /* This message matches "failing address" marked s390 in ksymoops, so lines containing it will not be filtered out by ksymoops. */ printk("Failing address 0x%lx\n", (unsigned long)stack); break; } stack++; printk("sp + %02d: 0x%08lx\n", i * 4, addr); } printk("\n"); show_trace(task, esp); return; }
void show_trace_task(struct task_struct *tsk) { unsigned long esp = PT_REGS_SP(&tsk->thread.regs); /* User space on another CPU? */ if ((esp ^ (unsigned long)tsk) & (PAGE_MASK<<1)) return; show_trace((unsigned long *)esp); }
void show_regs(struct pt_regs *regs) { show_regs_print_info(KERN_DEFAULT); show_registers(regs); /* Show stack backtrace if pt_regs is from kernel mode */ if (!user_mode(regs)) show_trace(NULL, (unsigned long *) regs->gprs[15]); show_last_breaking_event(regs); }
void show_trace_task(struct task_struct *tsk) { unsigned long sp = tsk->thread.sp; /* User space on another CPU? */ if ((sp ^ (unsigned long) tsk) & (PAGE_MASK << 1)) return; show_trace((unsigned long *) sp); }
static void show_registers(struct pt_regs *regs) { show_regs(regs); printk(KERN_NOTICE "Process %s (pid: %d, stackpage=%08lx)\n", current->comm, current->pid, (unsigned long) current); show_stack(current_thread_info()->task, (long *) regs->regs[0]); show_trace((long *) regs->regs[0]); show_code((unsigned int *) regs->cp0_epc); printk(KERN_NOTICE "\n"); }
/* * The architecture-independent dump_stack generator */ void dump_stack(void) { unsigned long stack; printk("Pid: %d, comm: %.20s %s %s %.*s\n", current->pid, current->comm, print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), init_utsname()->version); show_trace(NULL, NULL, &stack); }
int show_trace (char * str, ...) { va_list marker; int count; va_start (marker, str); count = show_trace (str, marker); va_end (marker); fflush (stderr); return count; }
/* * The architecture-independent dump_stack generator */ void dump_stack(void) { unsigned long bp; unsigned long stack; bp = stack_frame(current, NULL); printk("Pid: %d, comm: %.20s mm: {%p} %s %s %.*s\n", current->pid, current->comm,current->mm, print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), init_utsname()->version); show_trace(NULL, NULL, &stack, bp); }
void show_stack(struct task_struct *tsk, unsigned long *sp) { unsigned long stack; if (!tsk) tsk = current; if (tsk == current) sp = (unsigned long *)current_stack_pointer; else sp = (unsigned long *)tsk->thread.sp; stack = (unsigned long)sp; dump_mem("Stack: ", stack, THREAD_SIZE + (unsigned long)task_stack_page(tsk)); show_trace(tsk, sp, NULL); }
void dump_stack(void) { unsigned long bp = 0; unsigned long stack; #ifdef CONFIG_FRAME_POINTER if (!bp) get_bp(bp); #endif printk("Pid: %d, comm: %.20s %s %s %.*s\n", current->pid, current->comm, print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), init_utsname()->version); show_trace(NULL, NULL, &stack, bp); }
void show_regs(struct pt_regs * regs) { printk("\n"); printk("Pid: %d, comm: %20s\n", current->pid, current->comm); printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id()); print_symbol("EIP is at %s\n", regs->eip); if (regs->xcs & 2) printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp); printk(" EFLAGS: %08lx %s (%s)\n",regs->eflags, print_tainted(),UTS_RELEASE); printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", regs->eax,regs->ebx,regs->ecx,regs->edx); printk("ESI: %08lx EDI: %08lx EBP: %08lx", regs->esi, regs->edi, regs->ebp); printk(" DS: %04x ES: %04x\n", 0xffff & regs->xds,0xffff & regs->xes); show_trace(NULL, ®s->esp); }
/* * show the raw stack from the specified stack pointer */ void show_stack(struct task_struct *task, unsigned long *sp) { unsigned long *stack; int i; if (!sp) sp = (unsigned long *) &sp; stack = sp; printk(KERN_EMERG "Stack:"); for (i = 0; i < kstack_depth_to_print; i++) { if (((long) stack & (THREAD_SIZE - 1)) == 0) break; if ((i % 8) == 0) printk("\n" KERN_EMERG " "); printk("%08lx ", *stack++); } show_trace(sp); }
void show_regs(struct pt_regs *regs) { unsigned long sp = regs->sp; unsigned long lr = regs->lr; unsigned long mode = (regs->sr & MODE_MASK) >> MODE_SHIFT; if (!user_mode(regs)) sp = (unsigned long)regs + FRAME_SIZE_FULL; print_symbol("PC is at %s\n", instruction_pointer(regs)); print_symbol("LR is at %s\n", lr); printk("pc : [<%08lx>] lr : [<%08lx>] %s\n" "sp : %08lx r12: %08lx r11: %08lx\n", instruction_pointer(regs), lr, print_tainted(), sp, regs->r12, regs->r11); printk("r10: %08lx r9 : %08lx r8 : %08lx\n", regs->r10, regs->r9, regs->r8); printk("r7 : %08lx r6 : %08lx r5 : %08lx r4 : %08lx\n", regs->r7, regs->r6, regs->r5, regs->r4); printk("r3 : %08lx r2 : %08lx r1 : %08lx r0 : %08lx\n", regs->r3, regs->r2, regs->r1, regs->r0); printk("Flags: %c%c%c%c%c\n", regs->sr & SR_Q ? 'Q' : 'q', regs->sr & SR_V ? 'V' : 'v', regs->sr & SR_N ? 'N' : 'n', regs->sr & SR_Z ? 'Z' : 'z', regs->sr & SR_C ? 'C' : 'c'); printk("Mode bits: %c%c%c%c%c%c%c%c%c\n", regs->sr & SR_H ? 'H' : 'h', regs->sr & SR_R ? 'R' : 'r', regs->sr & SR_J ? 'J' : 'j', regs->sr & SR_EM ? 'E' : 'e', regs->sr & SR_I3M ? '3' : '.', regs->sr & SR_I2M ? '2' : '.', regs->sr & SR_I1M ? '1' : '.', regs->sr & SR_I0M ? '0' : '.', regs->sr & SR_GM ? 'G' : 'g'); printk("CPU Mode: %s\n", cpu_modes[mode]); show_trace(NULL, (unsigned long *)sp, regs); }
void show_regs(struct pt_regs_subarch *regs) { printk("\n"); printk("show_regs(): insert regs here.\n"); #if 0 printk("\n"); printk("EIP: %04x:[<%08lx>] CPU: %d",0xffff & regs->xcs, regs->eip, smp_processor_id()); if (regs->xcs & 3) printk(" ESP: %04x:%08lx",0xffff & regs->xss, regs->esp); printk(" EFLAGS: %08lx\n", regs->eflags); printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", regs->eax, regs->ebx, regs->ecx, regs->edx); printk("ESI: %08lx EDI: %08lx EBP: %08lx", regs->esi, regs->edi, regs->ebp); printk(" DS: %04x ES: %04x\n", 0xffff & regs->xds, 0xffff & regs->xes); #endif show_trace(®s->gpr[1]); }
void show_stack(struct task_struct *task, unsigned long *sp) { register unsigned long *__r15 asm ("15"); unsigned long *stack; int i; if (!sp) stack = task ? (unsigned long *) task->thread.ksp : __r15; else stack = sp; for (i = 0; i < kstack_depth_to_print; i++) { if (((addr_t) stack & (THREAD_SIZE-1)) == 0) break; if ((i * sizeof(long) % 32) == 0) printk("%s ", i == 0 ? "" : "\n"); printk(LONG, *stack++); } printk("\n"); show_trace(task, sp); }
void show_stack(struct task_struct *task, unsigned long *sp) { unsigned long *stack, addr; int i; /* * debugging aid: "show_stack(NULL);" prints a * back trace. */ if(sp == NULL) { if (task) sp = (unsigned long*)task->thread.ksp; else sp = (unsigned long*)rdsp(); } stack = sp; raw_printk("\nStack from %08lx:\n ", (unsigned long)stack); for(i = 0; i < kstack_depth_to_print; i++) { if (((long) stack & (THREAD_SIZE-1)) == 0) break; if (i && ((i % 8) == 0)) raw_printk("\n "); if (__get_user (addr, stack)) { /* This message matches "failing address" marked s390 in ksymoops, so lines containing it will not be filtered out by ksymoops. */ raw_printk ("Failing address 0x%lx\n", (unsigned long)stack); break; } stack++; raw_printk("%08lx ", addr); } show_trace(sp); }
void show_stack(struct task_struct *tsk, unsigned long * rsp) { unsigned long *stack; int i; const int cpu = safe_smp_processor_id(); unsigned long *irqstack_end = (unsigned long *) (cpu_pda[cpu].irqstackptr); unsigned long *irqstack = (unsigned long *) (cpu_pda[cpu].irqstackptr - IRQSTACKSIZE); // debugging aid: "show_stack(NULL, NULL);" prints the // back trace for this cpu. if (rsp == NULL) { if (tsk) rsp = (unsigned long *)tsk->thread.rsp; else rsp = (unsigned long *)&rsp; } stack = rsp; for(i=0; i < kstack_depth_to_print; i++) { if (stack >= irqstack && stack <= irqstack_end) { if (stack == irqstack_end) { stack = (unsigned long *) (irqstack_end[-1]); printk(" <EOI> "); } } else { if (((long) stack & (THREAD_SIZE-1)) == 0) break; } if (i && ((i % 4) == 0)) printk("\n "); printk("%016lx ", *stack++); touch_nmi_watchdog(); } show_trace((unsigned long *)rsp); }
// Display all processes and relevant network traffic using show function void do_refresh() { refreshconninode(); refreshcount++; ProcList * curproc = processes; ProcList * previousproc = NULL; int nproc = processes->size(); /* initialise to null pointers */ Line * lines [nproc]; int n = 0; #ifndef NDEBUG // initialise to null pointers for (int i = 0; i < nproc; i++) lines[i] = NULL; #endif while (curproc != NULL) { // walk though its connections, summing up their data, and // throwing away connections that haven't received a package // in the last PROCESSTIMEOUT seconds. assert (curproc != NULL); assert (curproc->getVal() != NULL); assert (nproc == processes->size()); /* remove timed-out processes (unless it's one of the the unknown process) */ if ((curproc->getVal()->getLastPacket() + PROCESSTIMEOUT <= curtime.tv_sec) && (curproc->getVal() != unknowntcp) && (curproc->getVal() != unknownudp) && (curproc->getVal() != unknownip)) { if (DEBUG) std::cout << "PROC: Deleting process\n"; ProcList * todelete = curproc; Process * p_todelete = curproc->getVal(); if (previousproc) { previousproc->next = curproc->next; curproc = curproc->next; } else { processes = curproc->getNext(); curproc = processes; } delete todelete; delete p_todelete; nproc--; //continue; } else { // add a non-timed-out process to the list of stuff to show float value_sent = 0, value_recv = 0; if (viewMode == VIEWMODE_KBPS) { //std::cout << "kbps viemode" << std::endl; getkbps (curproc->getVal(), &value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_KB) { //std::cout << "total viemode" << std::endl; gettotalkb(curproc->getVal(), &value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_MB) { //std::cout << "total viemode" << std::endl; gettotalmb(curproc->getVal(), &value_recv, &value_sent); } else if (viewMode == VIEWMODE_TOTAL_B) { //std::cout << "total viemode" << std::endl; gettotalb(curproc->getVal(), &value_recv, &value_sent); } else { forceExit(false, "Invalid viewMode: %d", viewMode); } uid_t uid = curproc->getVal()->getUid(); #ifndef NDEBUG struct passwd * pwuid = getpwuid(uid); assert (pwuid != NULL); // value returned by pwuid should not be freed, according to // Petr Uzel. //free (pwuid); #endif assert (curproc->getVal()->pid >= 0); assert (n < nproc); lines[n] = new Line (curproc->getVal()->name, value_recv, value_sent, curproc->getVal()->pid, uid, curproc->getVal()->devicename); previousproc = curproc; curproc = curproc->next; n++; #ifndef NDEBUG assert (nproc == processes->size()); if (curproc == NULL) assert (n-1 < nproc); else assert (n < nproc); #endif } } /* sort the accumulated lines */ qsort (lines, nproc, sizeof(Line *), GreatestFirst); if (tracemode || DEBUG) show_trace(lines, nproc); else show_ncurses(lines, nproc); if (refreshlimit != 0 && refreshcount >= refreshlimit) quit_cb(0); }
static void show_msg(FILE *stream, int direction, const erlang_msg *msg, const char *buf) { if (direction) fprintf(stream,"-> "); else fprintf(stream,"<- "); switch (msg->msgtype) { case ERL_LINK: fprintf(stream,"LINK From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); break; case ERL_SEND: fprintf(stream,"SEND To: "); show_pid(stream,&msg->to); fprintf(stream,"\n "); /* show the message */ ei_efprint(stream,buf); break; case ERL_EXIT: fprintf(stream,"EXIT From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); /* show the reason */ fprintf(stream,"\n Reason: "); ei_efprint(stream,buf); break; case ERL_UNLINK: fprintf(stream,"UNLINK From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); break; case ERL_REG_SEND: fprintf(stream,"REG_SEND From: "); show_pid(stream,&msg->from); fprintf(stream," To: %s\n ",msg->toname); /* show the message */ ei_efprint(stream,buf); break; case ERL_GROUP_LEADER: fprintf(stream,"GROUP_LEADER From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); break; case ERL_EXIT2: fprintf(stream,"EXIT2 From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); /* show the reason */ fprintf(stream,"\n Reason: "); ei_efprint(stream,buf); break; /* the new TT stuff below */ case ERL_EXIT_TT: fprintf(stream,"EXIT_TT From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); fprintf(stream,"\n "); show_trace(stream,&msg->token); /* show the reason */ fprintf(stream,"\n Reason: "); ei_efprint(stream,buf); break; case ERL_EXIT2_TT: fprintf(stream,"EXIT2_TT From: "); show_pid(stream,&msg->from); fprintf(stream," To: "); show_pid(stream,&msg->to); fprintf(stream,"\n "); show_trace(stream,&msg->token); /* show the reason */ fprintf(stream,"\n Reason: "); ei_efprint(stream,buf); break; case ERL_SEND_TT: fprintf(stream,"SEND_TT To: "); show_pid(stream,&msg->to); fprintf(stream,"\n "); show_trace(stream,&msg->token); fprintf(stream,"\n "); /* show the message */ ei_efprint(stream,buf); break; case ERL_REG_SEND_TT: fprintf(stream,"REG_SEND_TT From: "); show_pid(stream,&msg->from); fprintf(stream," To: %s\n ",msg->toname); show_trace(stream,&msg->token); fprintf(stream,"\n "); /* show the message */ ei_efprint(stream,buf); break; default: fprintf(stream,"Unknown message type: %ld",msg->msgtype); } fprintf(stream,"\n"); }
void show_regs(struct pt_regs *regs) { __show_regs(regs, 1); show_trace(NULL, regs, ®s->sp, regs->bp); }
void dump_stack(void) { unsigned long stack; show_trace(current, &stack); }