I found a test case generated IL code:
iconst r3 <- 
storei4_membase_reg [sp + 0x34] <- r3
add_imm r6 <- sp [0x34]
call r3 <- [r3 <- R76] [r4 <- R77] [r5 <- R78] [r6 <- R79] [r7 <- R80] [r8 <-
R81] [r9 <- R82] [r10 <- R83] clobbers: c
I have traced actual executing instruction, I found that the offset 0x34 was
not set correctly on my target
platform. the process is to use method to call a extern C function resides in
the signature is:
LIBTEST_API int STDCALL
mono_test_marshal_bool_ref (int arg, unsigned int expected, unsigned int
testVal, unsigned int* bDefaultMarsh,
unsigned int* bBoolCustMarsh, char* bI1CustMarsh,
unsigned char* bU1CustMarsh,
unsigned short* bVBCustMarsh)
It seems that the caller function set the wrong offset (0x34) to passing
arguments and callee function overwrite
the memory so that passing parameter wrong.
Please tell me where could I find the offset setting place?
Rocket Software, Inc. and subsidiaries ? 77 Fourth Avenue, Waltham MA 02451 ?
+1 877.328.2932 ? +1 781.577.4321
Unsubscribe from Marketing Messages/Manage Your Subscription Preferences -
This communication and any attachments may contain confidential information of
Rocket Software, Inc. All unauthorized use, disclosure or distribution is
prohibited. If you are not the intended recipient, please notify Rocket
Software immediately and destroy all copies of this communication. Thank you.
Mono-devel-list mailing list