1 | /* |
2 | * Copyright 2003 PathScale, Inc. |
3 | * |
4 | * Licensed under the GPL |
5 | */ |
6 | |
7 | #include <linux/kernel.h> |
8 | #include <linux/module.h> |
9 | #include <linux/pid.h> |
10 | #include <linux/sched.h> |
11 | #include <linux/sched/debug.h> |
12 | #include <linux/utsname.h> |
13 | #include <asm/current.h> |
14 | #include <asm/ptrace.h> |
15 | #include <asm/sysrq.h> |
16 | |
17 | void show_regs(struct pt_regs *regs) |
18 | { |
19 | printk("\n" ); |
20 | print_modules(); |
21 | printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n" , task_pid_nr(current), |
22 | current->comm, print_tainted(), init_utsname()->release); |
23 | printk(KERN_INFO "RIP: %04lx:%pS\n" , PT_REGS_CS(regs) & 0xffff, |
24 | (void *)PT_REGS_IP(regs)); |
25 | printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n" , PT_REGS_SP(regs), |
26 | PT_REGS_EFLAGS(regs)); |
27 | printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n" , |
28 | PT_REGS_AX(regs), PT_REGS_BX(regs), PT_REGS_CX(regs)); |
29 | printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n" , |
30 | PT_REGS_DX(regs), PT_REGS_SI(regs), PT_REGS_DI(regs)); |
31 | printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n" , |
32 | PT_REGS_BP(regs), PT_REGS_R8(regs), PT_REGS_R9(regs)); |
33 | printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n" , |
34 | PT_REGS_R10(regs), PT_REGS_R11(regs), PT_REGS_R12(regs)); |
35 | printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n" , |
36 | PT_REGS_R13(regs), PT_REGS_R14(regs), PT_REGS_R15(regs)); |
37 | } |
38 | |