diff options
Diffstat (limited to 'source/module/monitor_trace.c')
| -rw-r--r-- | source/module/monitor_trace.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/source/module/monitor_trace.c b/source/module/monitor_trace.c index 5a68cb5..7ef7fdf 100644 --- a/source/module/monitor_trace.c +++ b/source/module/monitor_trace.c @@ -102,7 +102,7 @@ static int copy_stack_frame_remote(struct task_struct *tsk, } ret = orig_access_remote_vm(mm, (unsigned long)fp, frame, sizeof(*frame), 0); - printk("copy_stack_frame_remote %d ret:%d\n", tsk->pid, ret); + // printk("copy_stack_frame_remote %d ret:%d\n", tsk->pid, ret); mmput(mm); return ret; @@ -134,30 +134,30 @@ static inline void save_stack_trace_user_remote(struct task_struct *tsk, frame.ret_addr = 0; if (!copy_stack_frame_remote(tsk, fp, &frame)) { - printk("save_stack_trace_user_remote %d copy_stack_frame_remote fail\n", - tsk->pid); + // printk("save_stack_trace_user_remote %d copy_stack_frame_remote fail\n", + // tsk->pid); break; } if ((unsigned long)fp < regs->sp) { - printk("save_stack_trace_user_remote %d fp < sp count:%d\n", tsk->pid, - count); + // printk("save_stack_trace_user_remote %d fp < sp count:%d\n", tsk->pid, + // count); break; // 如果fp小于sp,说明已经到了栈底,退出 } // 如果返回地址不为0,说明是一个有效的栈帧,保存返回地址 if (frame.ret_addr) { trace->entries[trace->nr_entries++] = frame.ret_addr; - printk("save_stack_trace_user_remote %d ret_addr:%lx\n", tsk->pid, - frame.ret_addr); + // printk("save_stack_trace_user_remote %d ret_addr:%lx\n", tsk->pid, + // frame.ret_addr); } else { - printk("save_stack_trace_user_remote %d no ret_addr", tsk->pid); + // printk("save_stack_trace_user_remote %d no ret_addr", tsk->pid); break; // continue; } // 如果fp指向自己,说明已经到了栈底,退出 if (fp == frame.next_fp) { - printk("save_stack_trace_user_remote %d fp == next_fp", tsk->pid); + // printk("save_stack_trace_user_remote %d fp == next_fp", tsk->pid); break; } fp = frame.next_fp; // 否则,继续向下遍历 @@ -237,18 +237,18 @@ static void diagnose_save_stack_trace_user_remote(struct task_struct *tsk, * Trace user stack if we are not a kernel thread */ if (tsk->mm) { - printk("save_stack_trace_user_remote %d mm\n", tsk->pid); + // printk("save_stack_trace_user_remote %d mm\n", tsk->pid); save_stack_trace_user_remote(tsk, &trace); } if (trace.nr_entries < trace.max_entries) trace.entries[trace.nr_entries++] = ULONG_MAX; - printk("save_stack_trace_user_remote %d, stack: [", tsk->pid); - int i = 0; - for (i = 0; i < BACKTRACE_DEPTH; i++) { - printk("%lx, ", backtrace[i]); - } - printk("]\n"); + // printk("save_stack_trace_user_remote %d, stack: [", tsk->pid); + // int i = 0; + // for (i = 0; i < BACKTRACE_DEPTH; i++) { + // printk("%lx, ", backtrace[i]); + // } + // printk("]\n"); } static int diagnose_task_raw_stack_remote(struct task_struct *tsk, void *to, @@ -384,10 +384,10 @@ void diag_task_user_stack(struct task_struct *tsk, user_stack_detail *detail) { detail->bp = bp; if (tsk == current) { - printk("diag_task_user_stack %d current\n", tsk->pid); + // printk("diag_task_user_stack %d current\n", tsk->pid); diagnose_save_stack_trace_user(detail->stack); } else { - printk("diag_task_user_stack %d no current\n", tsk->pid); + // printk("diag_task_user_stack %d no current\n", tsk->pid); diagnose_save_stack_trace_user_remote(tsk, detail->stack); } } |
