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