<div dir="ltr">I've submitted this bug: <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=12669">https://bugzilla.xamarin.com/show_bug.cgi?id=12669</a><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sat, Jun 8, 2013 at 3:17 PM, Tim Matthews <span dir="ltr"><<a href="mailto:tim.matthews7@gmail.com" target="_blank">tim.matthews7@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>Hi I noticed a bug that was introduced in Mono 3 for embedding mono:<br><br><span style="font-family:courier new,monospace">#include <glib.h><br>#include <mono/jit/jit.h><br>#include <mono/metadata/assembly.h><br>

#include <mono/metadata/debug-helpers.h><br>#include <mono/metadata/object.h><br><br>#include <stdio.h><br><br>int <br>main (int argc, char* argv[]) {<br>    MonoDomain *domain;<br>    MonoImage *image;<br>

  MonoAssemblyName *assemName;<br>  MonoAssembly *assem;<br>  MonoMethodDesc* desc;<br>  MonoMethod* method;<br>    <br>  mono_config_parse(NULL);<br>    domain = mono_jit_init (argv [0]);<br><br>  assemName = mono_assembly_name_new("System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089");<br>

  assem = mono_assembly_load(assemName, NULL, NULL);<br>  image = mono_assembly_get_image(assem);<br>  desc = mono_method_desc_new("System.Windows.Forms.Application:EnableVisualStyles()", 1);<br>  method = mono_method_desc_search_in_image(desc, image);<br>

<br>  printf("About to crash\n");<br><br>  mono_runtime_invoke(method, NULL, NULL, NULL);  //crash<br><br>    mono_jit_cleanup (domain);<br>    return 0;<br>}</span><br><br><br><br><br></div>Produces the following output:<br>

<br><span style="font-family:courier new,monospace">% ./a.out   <br>About to crash<br><br>Unhandled Exception:<br>System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.Sockets.Socket ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.ArgumentException: The 'ExeConfigFilename' argument cannot be null.<br>

  at System.Configuration.ExeConfigurationHost.CheckFileMap (ConfigurationUserLevel level, System.Configuration.ExeConfigurationFileMap map) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.ExeConfigurationHost.InitForConfiguration (System.String& locationSubPath, System.String& configPath, System.String& locationConfigPath, IInternalConfigRoot root, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.InternalConfigurationSystem.InitForConfiguration (System.String& locationConfigPath, System.String& parentConfigPath, System.String& parentLocationConfigPath) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.Configuration..ctor (System.Configuration.InternalConfigurationSystem system, System.String locationSubPath) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0 <br>

  at System.Net.Sockets.Socket.CheckProtocolSupport () [0x00000] in <filename unknown>:0 <br>  at System.Net.Sockets.Socket..cctor () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>

  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0 <br>  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0 <br>  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0 <br>

  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>  at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0 <br>

[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.Sockets.Socket ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.ArgumentException: The 'ExeConfigFilename' argument cannot be null.<br>

  at System.Configuration.ExeConfigurationHost.CheckFileMap (ConfigurationUserLevel level, System.Configuration.ExeConfigurationFileMap map) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.ExeConfigurationHost.InitForConfiguration (System.String& locationSubPath, System.String& configPath, System.String& locationConfigPath, IInternalConfigRoot root, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.InternalConfigurationSystem.InitForConfiguration (System.String& locationConfigPath, System.String& parentConfigPath, System.String& parentLocationConfigPath) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.Configuration..ctor (System.Configuration.InternalConfigurationSystem system, System.String locationSubPath) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 <br>

  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0 <br>  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0 <br>

  at System.Net.Sockets.Socket.CheckProtocolSupport () [0x00000] in <filename unknown>:0 <br>  at System.Net.Sockets.Socket..cctor () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>

  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0 <br>  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0 <br>  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0 <br>

  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0 <br>  --- End of inner exception stack trace ---<br>  at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0 <br>

<br></span><div><span style="font-family:courier new,monospace"><br><br></span><br></div></div>
</blockquote></div><br></div>