Jason Zhao wrote: > Adam Leventhal wrote: > > Hi Jason, > > > > It would appear that your shell is a 32-bit process and you're > > recording the stack on entry to exece rather than the return. That is > > to say, you're recording the stack of your shell rather than the stack > > of the 64-bit ls process: > > > > # dtrace -n 'syscall::exece:return{ stack(); ustack(); }'dtrace: > > description 'syscall::exece:return' matched 1 probe > > CPU ID FUNCTION:NAME > > 1 82155 exece:return > > unix`sys_syscall32+0x1fc > > > > 0xfffffd7fff3bd8da > > Yes, my shell is 32-bit, as following: > > # file /usr/bin/bash > /usr/bin/bash: ELF 32-bit LSB executable 80386 Version 1 [FPU], > dynamically linked, stripped > > In other words, I should have run 64-bit bash other than 32-bit one. So > that I could get 64-bit address.
Solaris doesn't ship a 64bit version of "bash" (yet ; I'll work on that soon), right now the only 64bit shell shipped with the OS is ksh93, e.g. - /usr/bin/ksh93 is a link to "isaexec" which selects a 32bit or 64bit version of ksh93 based on /usr/bin/isalist output - /usr/bin/i86/ksh93 is 32bit/i386 - /usr/bin/amd64/ksh93 is 64bit/AMD64 - /usr/bin/sparcv7/ksh93 is 32bit/SPARC - /usr/bin/sparcv9/ksh93 is 64bit/SPARC - /usr/bin/s390/ksh93 is 32bit/SystemZ - /usr/bin/s390x/ksh93 is 64bit/SystemZ ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;)