Thanks, Sherry.

It is helpful.

-Brian
Sherry Moore ??:
> Hi Brian,
>
> It's all magic. :)
>
> Please see
>     http://blogs.sun.com/sherrym/entry/obtaining_function_arguments_on_amd64
> for details.  The file that should answer the rest of you questions is
>     usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c
>
> Hope that helps,
> Sherry
>
> ----- Forwarded message from Brian Xu - Sun Microsystems - Beijing China 
> <Brian.Xu at sun.com> -----
>   
> Date: Tue, 09 Dec 2008 10:32:20 +0800
> From: Brian Xu - Sun Microsystems - Beijing China <Brian.Xu at sun.com>
> Subject: [mdb-discuss] A question: how the '::findstack -v' in mdb works?
> To: mdb-discuss at opensolaris.org
>   
> Hi,
>   
> I have a question: how the cmd '::findstack -v' in mdb works?
>   
> In x32, it is easy to understand, since all the args are on the stack,
> while for amd64, since the args(<6) are not put on the stack, and those
> regs used to pass args(rdi, rsi, rdx, rcx, r8, r9) may be reused within
> the function, so I am curious when backtracing the stack, how to know
> the value of the args passed to the function's father, grandfather,
> great grandfather, etc?
>   
> Likewise in sparc, since at any time only the current register window
> can be accessed, so if we want to backtrace the stack, we can only
> access the fp(i6) and args(i0-i5) of the function's father, and how we
> can access those of the grandfather, great grandfather, etc?
>   
> Thanks,
> Brian
>   
> _______________________________________________
> mdb-discuss mailing list
> mdb-discuss at opensolaris.org
>   
> ----- End forwarded message -----
>
>   


Reply via email to