I'm getting quite strange stacks from DTrace's ustack(). Could please anybody 
explain what happens and suggest a fix/workaround?

My D-script is a trivial sampling profiler, see attached sampler.d
Program being profiled is attached as primes.c

This is a piece of DTrace script output (on OpenSolaris x86):
  1  62906                   :profile-100hz 7563566252 1 1 4 0
              primes`__moddi3+0xc4

  1  62906                   :profile-100hz 7573563203 1 1 4 0
              primes`__moddi3+0x97

  1  62906                   :profile-100hz 7592475248 1 1 4 0
              primes`__moddi3+0x66

  1  62906                   :profile-100hz 7602469821 1 1 4 0
              primes`is_prime+0x33
              primes`main+0x5b
              primes`_start+0x80

Note those "primes`__moddi3" stacks, which consist of only one stack frame. 
Where are "primes`is_prime" and "primes`main"?

BTW, changing "long long" to "long" fixes the problem. But still it's not clear 
why ustack() reports __moddi3 alone.
-- 
This message posted from opensolaris.org

Attachment: sampler.d
Description: Binary data

Attachment: primes.c
Description: Binary data

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to