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

Attachment: 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

Reply via email to