[Mono-devel-list] Is native codes for C# methods and CLI internal calls different?

Vivek, Bharath Varma (IE10) Vivek.Varma at honeywell.com
Mon Feb 28 08:55:39 EST 2005


>From inside the mono runtime, the proper way to walk the stack
>frames in a thread is to use the mono_walk_stack() function, there
>are a couple of examples of its use in mini/mini-exceptions.c.

For a HelloWorld application,

I make a call to mono_jit_walk_stack from an unhandled exception filter that
is called on an x86 breakpoint exception within Console.WriteLine JITed
code. I determine current_ip & current_bp from the exception context
information that is available to me in the exception filter. I do the
following within mono_jit_walk_stack

MONO_CONTEXT_SET_IP (&ctx,current_ip);
MONO_CONTEXT_SET_BP(&ctx,current_bp);

The stack walk within mono_jit_walk_stack tells me there are 3 methods 
WriteLine, Main, runtime_invoke_void.

I was thinking that the stack walk would give me the entire call stack
starting from Console.WriteLine and going up all the way through the various
class library corlib methods and eventually ending up in Main of my
HelloWorld. I basically expected to see a huge stack walk.

Any idea why my stack walk shows me only 3 methods? 

Any clues would be of great help.

Thanks very much!



More information about the Mono-devel-list mailing list