On Monday, October 25, 2010 17:27:53 Jate Sujjavanich wrote: > +{ > + struct mm_struct *mm = get_task_mm(task); > + > + unsigned long stack_length = mm->start_stack - mm->context.end_stack; > + unsigned char *stack_first_data = > + (unsigned char *)mm->context.end_stack; > + unsigned long stack_used; > + > + while ((stack_first_data < (unsigned char *)mm->start_stack) > + && (*stack_first_data == 0)) > + stack_first_data++; > + > + stack_used = mm->start_stack - (unsigned long)stack_first_data; > + > + /* est stack size, zero zone */ > + seq_printf(m, "%lu %lu\n", stack_length, (unsigned long)stack_used); > + > + return 0; > +}
since the app itself knows where its stack is, you should be using that instead of an unreliable scan. simply use the user_stack_pointer() helper from asm/ptrace.h. -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev