Hi Piotr,

We walk the stack from the base (thr.t_stkbase) to the top thr.t_stk
one frame at a time (a frame is a frame pointer and a pc).
        struct rwindow {
                uintptr_t rw_fp;
                uintptr_t rw_pc;
        };

If we can't reach the top from base, we can't declare conclusively that
it's the correct stack.

Please see the following file for details:
    usr/src/cmd/mdb/common/modules/genunix/findstack.c

Sherry

On Wed, Feb 04, 2009 at 08:26:01PM +0100, Piotr Jasiukajtis wrote:
> Hi,
> 
> Why sometimes mdb cannot find a stack for threads?
> For example:
> 
> Possible stack pointers for thread ffffff00a73d0900:
>   ffffff0001bc5b20 (4)
>   ffffff0001bc5cd0 (2)
>   ffffff0001bc5e10 (6)
>   ffffff0001bc5f70 (2)
>   ffffff0001bc6060 (5)
>   ffffff0001bc61b0 (2)
>   ffffff0001bc6350 (2)
>   ffffff0001bc6490 (2)
>   ffffff0001bc6580 (5)
>   ffffff0001bc65e0 (2)
> 
> 
> -- 
> Regards,
> Piotr Jasiukajtis | estibi | SCA OS0072
> http://estseg.blogspot.com
> _______________________________________________
> opensolaris-code mailing list
> opensolaris-code@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

-- 
Sherry Moore, Solaris Core Kernel       http://blogs.sun.com/sherrym
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to