[Mono-dev] Does JIT produce code with frame pointer

Massimiliano Mantione massi at ximian.com
Fri Mar 2 02:24:54 EST 2007


On Thu, 2007-03-01 at 21:21 -0800, Muath A. Khalaf wrote:
> 1- I want to ask if JIT produces code that has a frame pointer i.e.
> something  similar to what you get when you omit the
"-fomit-frame-pointer"
> option with gcc.

Yes, we use the frame pointer.

> 2- Is it correct that: a mono single threaded program has only two
> runtime 
> stacks one for the application thread and the other for the GC thread.
> This 
> means that when a managed method calls an internal mono method (icall)
> then 
> on the app runtime stack I will have the managed method frame along
> with the 
> icall frame on top of it (or below) of course with the wrapper in
> between.

There can be a finalizer thread, too (if it's not disabled).

> This is important as I am trying to integrate OProfile with mono and
> want 
> to understand the stacks that should be sampled by OProfile to test
> them.

Interesting!

But why should OProfile ignore the gc and finaliser stacks-threads?
IMHO, one of the great things of OProfile is that it's a system-level
profiler, which samples everything... what if in my application those
threads play an important role performance-wise?
Of course it's possible I'm missing something...

However, I had the impression that the only thing that OProfile needs to
know is the mapping from memory regions to methods in the source code.

BTW, are you basing your work on the OProfile/Java integration done
by IBM, or are you restarting from scratch?

Ciao,
  Massi





More information about the Mono-devel-list mailing list