[Mono-devel-list] JIT, MonoCompile
kaushik at vfemail.net
Sun Jan 23 20:18:28 EST 2005
I've been trying to insert some code into every JITted method by modifying
the mono_codegen function in mini.c.
I've added the following function in mini.c
Void foo( void )
printf( "." );
And then the following lines
Mono_add_patch_info( cfg, code - cfg->native_code, MONO_PATCH_INFO_ABS,
foo); X86_call_code( code, 0 );
This works and my function gets called each time.
But earlier I tried inserting only
X86_call_code( code, foo )
And I got a segfault.
I thought this would work because all that x86_call_code does ( as far as I
understood ) is to emit a call <offset> instruction into the code stream.
And since I am calling a function that neither takes any parameters nor
returns any, I wouldn't be corrupting the stack either. But I fail to
understand why it segfaulted.
Why is a call to mono_add_patch_info needed?
How does the runtime make use of MonoCompile?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list