The following C test code calls the current Mono 4.2.1-91 framework. It builds and runs fine within Xcode 6.4 on 10.10.
It fails if I build and run it on OS X 10.11 using Xcode 7.1 - EXC_BAD_ACCESS in mono_jit_runtime_invoke() when calling AssemblyName:GetName() However the built binary runs fine outside of the Xcode environment. This obviously makes life difficult. It seems logical to infer that the Xcode IDE is the issue here and I have posted to the Xcode list. However, maybe there is more to this than I can detect. Perhaps the code below is somehow suspect. Any comments would be appreciated. Jonathan // Link against both Mono and CoreFoundation. // Header search path set to /Library/Frameworks/Mono.framework/Headers/Mono-2.0 // Architecture i386. #include <stdio.h> #import <mono/jit/jit.h> #import <mono/metadata/metadata.h> #import <mono/metadata/debug-helpers.h> MonoObject *invokeName(MonoObject *object, char *name); int main(int argc, const char * argv[]) { // init MonoDomain *domain = mono_jit_init_version("Dubrovnik", "v4.0.30319"); MonoAssembly *assembly = mono_domain_assembly_open(domain, "mscorlib"); // returns System.Reflection.Assembly MonoReflectionAssembly *assemblyObject = mono_assembly_get_object(domain, assembly); // returns System.Reflection.AssemblyName MonoObject *assemblyNameObject = invokeName((MonoObject *)assemblyObject, ":GetName()"); // returns System.Version MonoObject *versionObject = invokeName(assemblyNameObject, ":get_Version()"); // Returns System.String MonoObject *stringObject = invokeName(versionObject, ":ToString()"); printf("Version : %s\n", mono_string_to_utf8((MonoString *)stringObject)); return 0; } MonoObject *invokeName(MonoObject *object, char *name) { MonoClass *klass = mono_object_get_class(object); MonoMethodDesc *methodDesc = mono_method_desc_new(name, 1); MonoMethod *meth = NULL; while (klass != NULL) { meth = mono_method_desc_search_in_class(methodDesc, klass); if(meth != NULL) { meth = mono_object_get_virtual_method(object, meth); break; } klass = mono_class_get_parent(klass); } MonoObject *monoException = NULL; MonoObject *resultObject = mono_runtime_invoke(meth, object, NULL, &monoException); klass = mono_object_get_class(resultObject); printf("invokeName returned : %s\n", mono_class_get_name(klass)); return resultObject; } _______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (xcode-us...@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/jonathan%40mugginsoft.com This email sent to jonat...@mugginsoft.com _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list