[Mono-list] GAC question

fozzie david_aiken at yahoo.com
Mon Apr 20 01:07:13 EDT 2009


Well.. if i run the same assembly using the Mono 2.4 installed version it
works using the same libraries so i suspect it's the source i'm building
from. I'm using a snapshot of rev 131529 from SVN (it corresponded to the
current snapshot) . This built ok, but i suspect may have subtle problems. 

I tried using the Mono 2.4 tarball at
http://ftp.novell.com/pub/mono/sources/mono/mono-2.4.tar.bz2 but it doesn't
build cleanly using MSVC. It's missing the eglib files, and some of the
projects. Does someone know how i can get around this? Perhaps i just need
to checkout the 2.4 source from SVN corresponding to the Mono 2.4 install
for windows.. if so, is the revision available somewhere?


Robert Jordan wrote:
> 
> Hi,
> 
> the crash you've experienced can only happen if I18N.dll is corrupt
> Since this assembly is not vital, removing the GAC directory has
> no immediate influence on your app. That's why it seems to work when
> the GAC is missing.
> 
> 
> fozzie wrote:
>> bump.. I'm trying to use a 3rd party dll from within a mono VM embedded
>> in a
>> windows application. I restored the GAC directory name and used gacutil
>> to
>> register the dll using a strong name. But as soon as i run mono_jit_exec
>> the
>> crash occurs. It doesn't occur if the GAC directory is missing.
>> 
>> The method variable in ves_icall_get_parameter_info() has its name field
>> set
>> to "get_PrimaryManager". Looking further into method:
>> method.klass.image.name =
>> "c:\AAA\git\1.5.8_bullet\mono\lib\mono\gac\I18N\2.0.0.0__0738eb9f132ed756\I18N.dll"
>> method.klass.name = "Manager"
>> method.klass.name_space = "I18N.Common"
>> 
>> I'm using gmcs.bat to compile, but i'm just specifying the input and
>> output
>> files. Am i getting a version mismatch somewhere?
>> 
>> 
>> 
>> fozzie wrote:
>>> hi all..
>>>
>>> I'm getting a crash stack when i run the teste project with the test.cs
>>> sample:
>>>
>>>> 	mono.dll!mono_class_from_mono_type(_MonoType * type=0x00000013)  Line
>> 4711 + 0x3 bytes	C
>>>  	mono.dll!ves_icall_get_parameter_info(_MonoMethod * method=0x01aee028,
>>> _MonoReflectionMethod * member=0x0012f864)  Line 1644 + 0x18 bytes	C
>>>  	02203260()	
>>>  	mono.dll!mono_get_lmf_addr()  Line 2159 + 0xe bytes	C
>>>  	02203249()	
>>>  	mono.dll!mono_thread_current()  Line 1302 + 0xe bytes	C
>>>  	mono.dll!mono_thread_interruption_checkpoint_request(int
>>> bypass_abort_protection=0)  Line 3667	C
>>>  	00000001()	
>>>  	mono.dll!mono_thread_current()  Line 1302 + 0xe bytes	C
>>>
>>> The output is as follows:
>>>
>>> 'teste.exe': Loaded
>>> 'C:\cygwin\usr\src\mono\mono\msvc\Win32_Debug_eglib\bin\teste.exe',
>>> Symbols loaded.
>>> 'teste.exe': Loaded 'C:\Windows\System32\ntdll.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\kernel32.dll'
>>> 'teste.exe': Loaded
>>> 'C:\cygwin\usr\src\mono\mono\msvc\Win32_Debug_eglib\bin\mono.dll',
>>> Symbols
>>> loaded.
>>> 'teste.exe': Loaded 'C:\Windows\System32\version.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\msvcrt.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\ws2_32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\advapi32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\rpcrt4.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\nsi.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\psapi.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\winmm.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\user32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\gdi32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\ole32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\oleaut32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\oleacc.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\shell32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\shlwapi.dll'
>>> 'teste.exe': Loaded
>>> 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2\msvcr90d.dll',
>>> Symbols loaded.
>>> 'teste.exe': Loaded 'C:\Windows\System32\imm32.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\msctf.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\lpk.dll'
>>> 'teste.exe': Loaded 'C:\Windows\System32\usp10.dll'
>>> 'teste.exe': Loaded
>>> 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll'
>>> 'teste.exe': Loaded 'ImageAtBase0x1d0000', No symbols loaded.
>>> 'teste.exe': Unloaded 'ImageAtBase0x1d0000'
>>> 'teste.exe': Loaded 'C:\Windows\System32\mscoree.dll'
>>> 'teste.exe': Loaded
>>> 'C:\cygwin\usr\src\mono\mono\msvc\Win32_Debug_eglib\test.exe', Binary
>>> was
>>> not built with debug information.
>>> 'teste.exe': Loaded
>>> 'C:\cygwin\usr\src\mono\mono\msvc\Win32_Debug_eglib\lib\mono\1.0\mscorlib.dll',
>>> Binary was not built with debug information.
>>> 'teste.exe': Loaded
>>> 'C:\cygwin\usr\src\mono\mono\msvc\Win32_Debug_eglib\lib\mono\gac\I18N\1.0.5000.0__0738eb9f132ed756\I18N.dll',
>>> Binary was not built with debug information.
>>> First-chance exception at 0x1019dea9 (mono.dll) in teste.exe:
>>> 0xC0000005:
>>> Access violation reading location 0x00000017.
>>> Unhandled exception at 0x1019dea9 (mono.dll) in teste.exe: 0xC0000005:
>>> Access violation reading location 0x00000017.
>>>
>>>
>>>
>>> The weird thing is that the program works when i rename the lib\mono\gac
>>> subdirectory to something else before running it. Can someone explain
>>> this
>>> behavior? An intermingling of windows and mono code, perhaps?
>>>
>>> thanks!
>>>
>> 
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
> 
> 

-- 
View this message in context: http://www.nabble.com/GAC-question-tp23044913p23130444.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list