diff --git a/source/module/monitor_kernel_lib.c b/source/module/monitor_kernel_lib.c index 759f6aa..e15e1e9 100644 --- a/source/module/monitor_kernel_lib.c +++ b/source/module/monitor_kernel_lib.c @@ -63,12 +63,13 @@ void diag_tsk(struct task_struct *p, variable_monitor_task *tsk_info,unsigned lo diag_task_user_stack(p, &tsk_info->user_stack); // user stack // printk("2\n"); nr_bt = diag_task_kern_stack(p, &tsk_info->kern_stack); // kernel stack + // int i = 0; // printk("pid: %d, kernel stack.stack\n", p->pid); // for (i = 0; i < nr_bt; i++) { // printk("%lx\n", tsk_info->kern_stack.stack[i]); // } // printk("pid: %d, stack_trace_print\n", p->pid); - stack_trace_print(tsk_info->kern_stack.stack, nr_bt, 0); /* 打印栈 */ + // stack_trace_print(tsk_info->kern_stack.stack, nr_bt, 0); /* 打印栈 */ // printk("3\n"); dump_proc_chains_argv(1, p, &mm_tree_struct, diff --git a/source/module/monitor_trace.c b/source/module/monitor_trace.c index 9583068..a07545b 100644 --- a/source/module/monitor_trace.c +++ b/source/module/monitor_trace.c @@ -283,19 +283,16 @@ void diag_task_user_stack(struct task_struct *tsk, user_stack_detail *detail) { struct task_struct *leader; if (!detail) { - printk("diag_task_user_stack 4\n"); return; } detail->stack[0] = 0; if (!tsk || !tsk->mm) { - printk("diag_task_user_stack 5\n"); return; } leader = tsk->group_leader; if (!leader || !leader->mm || leader->exit_state == EXIT_ZOMBIE) { - printk("diag_task_user_stack 6\n"); return; } @@ -314,10 +311,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 7\n"); + // printk("diag_task_user_stack current\n"); diagnose_save_stack_trace_user(detail->stack); } else { - printk("diag_task_user_stack 8\n"); + // printk("diag_task_user_stack no current\n"); diagnose_save_stack_trace_user_remote(tsk, detail->stack); } } @@ -365,6 +362,10 @@ void dump_proc_chains_argv(int style, struct task_struct *tsk, mm_tree *mm_tree, detail->full_argv[cnt] = 0; } detail->tgid[cnt] = walker->pid; + // if ((detail->tgid[cnt] != 0) | (detail->full_argv[cnt] != 0)) { + // printk("pid: %d,full_argv: %d, chains: %s, cnt:%d\n", detail->tgid[cnt], + // detail->full_argv[cnt], detail->chains[cnt], cnt); + // } walker = rcu_dereference(walker->real_parent); cnt++; if (cnt >= PROCESS_CHAINS_COUNT) break;