I have attached a trace of the problem I'm having. The trace is heavily edited to show only the parent function and the looping functions. I still have the full trace if anyone wants it but since the looping doesn't start until line # 335248 it's pretty big. ;-)
It looks like System.Windows.Forms.Locale:GetText is the source of the loop. While trying to get some information about the keyboard. GetText calls a number of other functions before the looping begins. I suspect this is not Mono's fault but my particular setup. Still it would be nice for Mono to notice this and default to a safe locale or whatever. This problem only occurs in apps that try to use Windows.Forms. I'm happy with the work around LC="C" for now but I hope this helps someone else. Adam On Tuesday 24 January 2006 20:07, Peter Dennis Bartok wrote: > Adam, > > Can you run your app with "mono --trace" and see where it hangs (or what > infinite loop you enter). You might want to redirect to a file, it's gonna > give you *lots* of output. > > I tried running here with your LC locale, but I don't get a problem (I'm on > SuSE10). Does it matter what application you are trying to run, or are all > failing? > > Cheers, > Peter > > -----Original Message----- > From: "Adam J. P. Wood" <[EMAIL PROTECTED]> > To: <[email protected]> > Date: 23 January, 2006 15:01 > Subject: Re: [Mono-winforms-list] Mono hangs after looking up > XKeycodeToKeysym > > >Accidentally repiled to author instead of the list, so I'm trying again. > > :) > > > >I'm not running a 64 bit processor, just an AMD Athlon XP. > > > >Adam > > > >On Monday 23 January 2006 20:57, Peter Dennis Bartok wrote: > >> Are you on a 64bit processor? > >> > >> Peter > >> > >> -----Original Message----- > >> From: "Adam J. P. Wood" <[EMAIL PROTECTED]> > >> To: <[email protected]> > >> Date: 23 January, 2006 13:55 > >> Subject: [Mono-winforms-list] Mono hangs after looking up > >> XKeycodeToKeysym > >> > >> >Please help, > >> > > >> >I'm using mono on Linux and trying to run an app which has previously > >> >worked > >> >on windows. I think it is a problem with my Xorg configuration but I > >> >can't > >> >figure it out. > >> > > >> >I'm using Gentoo, Xorg 6.8, and Mono 1.1.13 > >> > > >> >When I start up mono with debugging output the app starts and prints > >> >some > >> >console text. As it tries to open the first window obviously the > >> >System.Windows.Forms assembly gets loaded and then a lot of lines like > >> >the > >> >following: > >> > > >> >Mono-INFO: Searching for 'XGetKeyboardMapping'. > >> >Mono-INFO: Probing 'XGetKeyboardMapping'. > >> >Mono-INFO: Found as 'XGetKeyboardMapping'. > >> >Mono-INFO: DllImport attempting to load: 'libX11.so.6'. > >> >Mono-INFO: DllImport loading location: 'libX11.so.6'. > >> >Mono-INFO: Searching for 'XFree'. > >> >Mono-INFO: Probing 'XFree'. > >> >Mono-INFO: Found as 'XFree'. > >> >Mono-INFO: DllImport attempting to load: 'libX11.so.6'. > >> >Mono-INFO: DllImport loading location: 'libX11.so.6'. > >> >Mono-INFO: Searching for 'XFreeModifiermap'. > >> >Mono-INFO: Probing 'XFreeModifiermap'. > >> >Mono-INFO: Found as 'XFreeModifiermap'. > >> >Mono-INFO: DllImport attempting to load: 'libX11.so.6'. > >> >Mono-INFO: DllImport loading location: 'libX11.so.6'. > >> >Mono-INFO: Searching for 'XKeycodeToKeysym'. > >> >Mono-INFO: Probing 'XKeycodeToKeysym'. > >> >Mono-INFO: Found as 'XKeycodeToKeysym'. > >> > > >> >The lines above are the last lines I get and then mono just hangs and > >> >starts > >> >eating cpu time without getting any further. I've since tried other > >> > apps and > >> >they all have the same effect. I can only assume after hours of playing > >> >around that my keyboard settings are defunct but I don't see how. > >> >Here is a snippet from my /etc/X11/xorg.conf, I have tried it both with > >> > the commented lines working and disabled. > >> > > >> >Section "InputDevice" > >> > Identifier "Keyboard1" > >> > Driver "kbd" > >> ># Option "AutoRepeat" "500 30" > >> ># Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) > >> ># Option "XkbRules" "xorg" > >> ># Option "XkbModel" "pc105" > >> ># Option "XkbLayout" "gb" > >> >EndSection > >> > > >> >Does anyone have any ideas? > >> > > >> >thanks, > >> > > >> >Adam Wood > >> >_______________________________________________ > >> >Mono-winforms-list maillist - [email protected] > >> >http://lists.ximian.com/mailman/listinfo/mono-winforms-list > > > >_______________________________________________ > >Mono-winforms-list maillist - [email protected] > >http://lists.ximian.com/mailman/listinfo/mono-winforms-list
ENTER: System.Windows.Forms.Locale:GetText (string)([STRING:0x8355800:Keyboard], ) . ENTER: System.Resources.ResourceManager:GetObject (string)(this:0x825efc8[System.Resources.R$ . . ENTER: System.Resources.ResourceManager:GetObject (string,System.Globalization.CultureInfo$ -----------------------BEGIN LOOP---------------------- ENTER: System.Resources.ResourceSet:GetObject (string,bool)(this:0x821d020[System.Resources.ResourceSet AtlasClient.exe], [STRING:0x8355800:Keyboard], 0, ) . ENTER: System.Collections.Hashtable:get_Item (object)(this:0x8254510[System.Collections.Hashtable AtlasClient.exe], [STRING:0x8355800:Keyboard], ) . . ENTER: System.Collections.Hashtable:GetHash (object)(this:0x8254510[System.Collections.Hashtable AtlasClient.exe], [STRING:0x8355800:Keyboard], ) . . . ENTER: System.String:GetHashCode ()(this:[STRING:0x8355800:Keyboard], ) . . . LEAVE: System.String:GetHashCode ()result=568383495 . . LEAVE: System.Collections.Hashtable:GetHash (object)result=568383495 . LEAVE: System.Collections.Hashtable:get_Item (object)[OBJECT:(nil)] LEAVE: System.Resources.ResourceSet:GetObject (string,bool)[OBJECT:(nil)] ENTER: System.Globalization.CultureInfo:get_InvariantCulture ()() LEAVE: System.Globalization.CultureInfo:get_InvariantCulture ()[System.Globalization.CultureInfo:0x82e8ee0] ENTER: System.Globalization.CultureInfo:get_Parent ()(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], ) LEAVE: System.Globalization.CultureInfo:get_Parent ()[System.Globalization.CultureInfo:0x82e8b60] ENTER: System.Resources.ResourceManager:InternalGetResourceSet (System.Globalization.CultureInfo,bool,bool)(this:0x825efc8[System.Resources.ResourceManager AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], 1, 1, ) . ENTER: System.Collections.Hashtable:get_Item (object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], ) . . ENTER: System.Collections.Hashtable:GetHash (object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], ) . . . ENTER: System.Globalization.CultureInfo:GetHashCode ()(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], ) . . . LEAVE: System.Globalization.CultureInfo:GetHashCode ()result=127 . . LEAVE: System.Collections.Hashtable:GetHash (object)result=127 . . ENTER: System.Collections.Hashtable:KeyEquals (object,object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], [System.Globalization.CultureInfo:0x82e8cb0], ) . . . ENTER: System.Globalization.CultureInfo:Equals (object)(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8cb0], ) . . . LEAVE: System.Globalization.CultureInfo:Equals (object)TRUE:1 . . LEAVE: System.Collections.Hashtable:KeyEquals (object,object)TRUE:1 . LEAVE: System.Collections.Hashtable:get_Item (object)[System.Resources.ResourceSet:0x821d020] LEAVE: System.Resources.ResourceManager:InternalGetResourceSet (System.Globalization.CultureInfo,bool,bool)[System.Resources.ResourceSet:0x821d020] ENTER: System.Resources.ResourceSet:GetObject (string,bool)(this:0x821d020[System.Resources.ResourceSet AtlasClient.exe], [STRING:0x8355800:Keyboard], 0, ) . ENTER: System.Collections.Hashtable:get_Item (object)(this:0x8254510[System.Collections.Hashtable AtlasClient.exe], [STRING:0x8355800:Keyboard], ) . . ENTER: System.Collections.Hashtable:GetHash (object)(this:0x8254510[System.Collections.Hashtable AtlasClient.exe], [STRING:0x8355800:Keyboard], ) . . . ENTER: System.String:GetHashCode ()(this:[STRING:0x8355800:Keyboard], ) . . LEAVE: System.String:GetHashCode ()result=568383495 . LEAVE: System.Collections.Hashtable:GetHash (object)result=568383495 LEAVE: System.Collections.Hashtable:get_Item (object)[OBJECT:(nil)] LEAVE: System.Resources.ResourceSet:GetObject (string,bool)[OBJECT:(nil)] ENTER: System.Globalization.CultureInfo:get_InvariantCulture ()() LEAVE: System.Globalization.CultureInfo:get_InvariantCulture ()[System.Globalization.CultureInfo:0x82e8ee0] ENTER: System.Globalization.CultureInfo:get_Parent ()(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], ) LEAVE: System.Globalization.CultureInfo:get_Parent ()[System.Globalization.CultureInfo:0x82e8b60] ENTER: System.Resources.ResourceManager:InternalGetResourceSet (System.Globalization.CultureInfo,bool,bool)(this:0x825efc8[System.Resources.ResourceManager AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], 1, 1, ) . ENTER: System.Collections.Hashtable:get_Item (object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], ) . . ENTER: System.Collections.Hashtable:GetHash (object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], ) . . . ENTER: System.Globalization.CultureInfo:GetHashCode ()(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], ) . . . LEAVE: System.Globalization.CultureInfo:GetHashCode ()result=127 . . LEAVE: System.Collections.Hashtable:GetHash (object)result=127 . . ENTER: System.Collections.Hashtable:KeyEquals (object,object)(this:0x8254ed0[System.Collections.Hashtable AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8b60], [System.Globalization.CultureInfo:0x82e8cb0], ) . . . ENTER: System.Globalization.CultureInfo:Equals (object)(this:0x82e8b60[System.Globalization.CultureInfo AtlasClient.exe], [System.Globalization.CultureInfo:0x82e8cb0], ) . . . LEAVE: System.Globalization.CultureInfo:Equals (object)TRUE:1 . . LEAVE: System.Collections.Hashtable:KeyEquals (object,object)TRUE:1 . LEAVE: System.Collections.Hashtable:get_Item (object)[System.Resources.ResourceSet:0x821d020] LEAVE: System.Resources.ResourceManager:InternalGetResourceSet (System.Globalization.CultureInfo,bool,bool)[System.Resources.ResourceSet:0x821d020]
_______________________________________________ Mono-winforms-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-winforms-list
