dumpstack_32.c (dfdc5437bd62dd6a26961e27f26b671374749875) | dumpstack_32.c (7ee991fbc6f947e9b04f29c9c6c1d057d0671a16) |
---|---|
1/* 2 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 4 */ 5#include <linux/kallsyms.h> 6#include <linux/kprobes.h> 7#include <linux/uaccess.h> 8#include <linux/utsname.h> --- 9 unchanged lines hidden (view full) --- 18#include <asm/stacktrace.h> 19 20#include "dumpstack.h" 21 22void dump_trace(struct task_struct *task, struct pt_regs *regs, 23 unsigned long *stack, unsigned long bp, 24 const struct stacktrace_ops *ops, void *data) 25{ | 1/* 2 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 4 */ 5#include <linux/kallsyms.h> 6#include <linux/kprobes.h> 7#include <linux/uaccess.h> 8#include <linux/utsname.h> --- 9 unchanged lines hidden (view full) --- 18#include <asm/stacktrace.h> 19 20#include "dumpstack.h" 21 22void dump_trace(struct task_struct *task, struct pt_regs *regs, 23 unsigned long *stack, unsigned long bp, 24 const struct stacktrace_ops *ops, void *data) 25{ |
26 int graph = 0; 27 |
|
26 if (!task) 27 task = current; 28 29 if (!stack) { 30 unsigned long dummy; 31 stack = &dummy; 32 if (task && task != current) 33 stack = (unsigned long *)task->thread.sp; --- 11 unchanged lines hidden (view full) --- 45 } 46#endif 47 48 for (;;) { 49 struct thread_info *context; 50 51 context = (struct thread_info *) 52 ((unsigned long)stack & (~(THREAD_SIZE - 1))); | 28 if (!task) 29 task = current; 30 31 if (!stack) { 32 unsigned long dummy; 33 stack = &dummy; 34 if (task && task != current) 35 stack = (unsigned long *)task->thread.sp; --- 11 unchanged lines hidden (view full) --- 47 } 48#endif 49 50 for (;;) { 51 struct thread_info *context; 52 53 context = (struct thread_info *) 54 ((unsigned long)stack & (~(THREAD_SIZE - 1))); |
53 bp = print_context_stack(context, stack, bp, ops, data, NULL); | 55 bp = print_context_stack(context, stack, bp, ops, 56 data, NULL, &graph); |
54 55 stack = (unsigned long *)context->previous_esp; 56 if (!stack) 57 break; 58 if (ops->stack(data, "IRQ") < 0) 59 break; 60 touch_nmi_watchdog(); 61 } --- 90 unchanged lines hidden --- | 57 58 stack = (unsigned long *)context->previous_esp; 59 if (!stack) 60 break; 61 if (ops->stack(data, "IRQ") < 0) 62 break; 63 touch_nmi_watchdog(); 64 } --- 90 unchanged lines hidden --- |