[Mono-dev] A segement fault on PPC host

2015-12-28 Thread Pin Cheng
Hi there,
I am trying to porting Mono 4.2.1 into aix 6.1, it was compiled in 32bits mode.
At present, I faced a segment fault at :
return runtime_invoke (obj, params, exc, info->compiled_method);
this is line is the last one in function mono_jit_runtime_invoke.
It seems  'runtime_invoke' could not be invoked so it leads to core dump.  The 
call stack is following:
#0  0x7c0802a4 in ?? ()
#1  0x102ff224 in mono_jit_runtime_invoke (method=0x200def38, obj=0x30400038, 
params=0x2ff22800, exc=0x0) at mini-runtime.c:2343
#2  0x100db4d8 in mono_runtime_invoke (method=0x200def38, obj=0x30400038, 
params=0x2ff22800, exc=0x0) at object.c:2783
#3  0x10184580 in create_exception_two_strings (klass=0x200dca60, 
a1=0x30400010, a2=0x0) at exception.c:142
#4  0x10184624 in mono_exception_from_name_two_strings (image=0x2009cad8, 
name_space=0x1046e2cc <__popcount_tab+15548> "System",
name=0x1046e2d4 <__popcount_tab+15556> "OutOfMemoryException", 
a1=0x30400010, a2=0x0) at exception.c:165
#5  0x1017d358 in create_domain_objects (domain=0x20099078) at appdomain.c:186
#6  0x1017d630 in mono_runtime_init (domain=0x20099078, start_cb=@0x200230e0: 
0x102fb84c ,
attach_cb=@0x200230ec: 0x102fb988 ) at 
appdomain.c:265
#7  0x103012c0 in mini_init (filename=0x2ff22ce6 "./hello.exe", 
runtime_version=0x0) at mini-runtime.c:3140
#8  0x10013db4 in mono_main (argc=2, argv=0x2ff22c48) at driver.c:1906
#9  0x1a20 in mono_main_with_options (argc=2, argv=0x2ff22c48) at main.c:91
#10 0x1aa8 in main (argc=2, argv=0x2ff22c48) at main.c:122

Hello.exe is a simple C# program compiled on linux platform.
public class HelloWorld
{
static public void Main ()
{
}
}

I think the runtime_invoke is just a invoke wrapper, the actual function is 
info->compiled_method.
I could print out those function debug info:
invoker:  (wrapper runtime-invoke) :runtime_invoke_void__this___object 
(object,intptr,intptr,intptr) + 0x0 (303cdde8 303cdf50) [20099078 - hello.exe]
compiled method:  System.OutOfMemoryException:.ctor (string) + 0x0 (303cdd80 
303cddcc) [20099078 - hello.exe]

My question are:
1. why use a invoker wrapper? Where did runtime_invoke_void__this___object 
comes from?
2.  I guess JIT could not compile such runtime_invoke_void__this___object 
(object,intptr,intptr,intptr) correctly. But how could I find out the problem 
place?
Should I inspect the native definition places. Such as cpu-ppc.md and 
mini-ppc.c and so on. Is my direction correct? Is there any another simpler way 
to resolve the problem?

I am new to Mono, many thing I need to learn. Please help me.
Thank you in advance!

Pin





Rocket Software, Inc. and subsidiaries ? 77 Fourth Avenue, Waltham MA 02451 ? 
+1 800.966.3270 ? +1 781.577.4321
Unsubscribe From Commercial Email - unsubscr...@rocketsoftware.com
Manage Your Subscription Preferences - 
http://info.rocketsoftware.com/GlobalSubscriptionManagementEmailFooter_SubscriptionCenter.html
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy


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
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] A segement fault on PPC host (Mono-devel-list Digest, Vol 128, Issue 9)

2015-12-28 Thread Jo Shields


On 28/12/15 09:37, Pin Cheng wrote:
> Hi there,
> I am trying to porting Mono 4.2.1 into aix 6.1, it was compiled in 32bits 
> mode.
> At present, I faced a segment fault at :
> return runtime_invoke (obj, params, exc, info->compiled_method);
> this is line is the last one in function mono_jit_runtime_invoke.
> It seems  'runtime_invoke' could not be invoked so it leads to core dump.  
> The call stack is following:
> #0  0x7c0802a4 in ?? ()
> #1  0x102ff224 in mono_jit_runtime_invoke (method=0x200def38, obj=0x30400038, 
> params=0x2ff22800, exc=0x0) at mini-runtime.c:2343
> #2  0x100db4d8 in mono_runtime_invoke (method=0x200def38, obj=0x30400038, 
> params=0x2ff22800, exc=0x0) at object.c:2783
> #3  0x10184580 in create_exception_two_strings (klass=0x200dca60, 
> a1=0x30400010, a2=0x0) at exception.c:142
> #4  0x10184624 in mono_exception_from_name_two_strings (image=0x2009cad8, 
> name_space=0x1046e2cc <__popcount_tab+15548> "System",
> name=0x1046e2d4 <__popcount_tab+15556> "OutOfMemoryException", 
> a1=0x30400010, a2=0x0) at exception.c:165
> #5  0x1017d358 in create_domain_objects (domain=0x20099078) at appdomain.c:186
> #6  0x1017d630 in mono_runtime_init (domain=0x20099078, start_cb=@0x200230e0: 
> 0x102fb84c ,
> attach_cb=@0x200230ec: 0x102fb988 ) at 
> appdomain.c:265
> #7  0x103012c0 in mini_init (filename=0x2ff22ce6 "./hello.exe", 
> runtime_version=0x0) at mini-runtime.c:3140
> #8  0x10013db4 in mono_main (argc=2, argv=0x2ff22c48) at driver.c:1906
> #9  0x1a20 in mono_main_with_options (argc=2, argv=0x2ff22c48) at 
> main.c:91
> #10 0x1aa8 in main (argc=2, argv=0x2ff22c48) at main.c:122
> 
> Hello.exe is a simple C# program compiled on linux platform.
> public class HelloWorld
> {
> static public void Main ()
> {
> }
> }
> 
> I think the runtime_invoke is just a invoke wrapper, the actual function is 
> info->compiled_method.
> I could print out those function debug info:
> invoker:  (wrapper runtime-invoke) 
> :runtime_invoke_void__this___object (object,intptr,intptr,intptr) + 
> 0x0 (303cdde8 303cdf50) [20099078 - hello.exe]
> compiled method:  System.OutOfMemoryException:.ctor (string) + 0x0 (303cdd80 
> 303cddcc) [20099078 - hello.exe]
> 
> My question are:
> 1. why use a invoker wrapper? Where did runtime_invoke_void__this___object 
> comes from?
> 2.  I guess JIT could not compile such runtime_invoke_void__this___object 
> (object,intptr,intptr,intptr) correctly. But how could I find out the problem 
> place?
> Should I inspect the native definition places. Such as cpu-ppc.md and 
> mini-ppc.c and so on. Is my direction correct? Is there any another simpler 
> way to resolve the problem?
> 
> I am new to Mono, many thing I need to learn. Please help me.
> Thank you in advance!

Last I checked, Big-endian 32-bit PowerPC was pretty ropey - and 64-bit
BE PPC doesn't work with 4.2.1 (works on git master), so you may be
running into architecture issues rather than OS issues

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list