http://bugs.winehq.org/show_bug.cgi?id=10467
Summary: Making Microsoft .NET 2.0 to work in wine, based on
example app FastMD5 1.4 for NET 2.0
Product: Wine
Version: CVS/GIT
Platform: PC
URL: http://www.paehl.de/english.php
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: wine-dotnet
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Hello,
this bug id exists for the sole purpose of showing my little journey of getting
.NET 2.0 to work in wine.
This topic does *NOT* cover the MONO project in any way.
The windows version of MONO is covered by other bug reports.
DISCLAIMER: This is just a first step which aims at major show stoppers.
There are *many* issues left when it comes to managed (JIT) vs. unmanaged
(native) API code bridging.
To iron out all the bugs, many different applications are needed which cover
the whole range of .NET Framework.
I randomly chose a simple .NET 2.0 app which uses plain system.windows.forms
stuff (no fancy controls/interop).
--- snip ---
http://www.paehl.de/fastmd5_net20.zip
FASTMD5 create very fast with low CPU use a MD5 hash. Required .NET 1.1 or 2.0
--- snip ---
Just as foreword: yes, it plain sucks to debug mixed code in wine (managed +
unmanaged) because the tools required don't work reliable (or at all) due to
several wine bugs/design problems.
Prerequisite: successful installation of .NET 2.0 Framework and wine-0.9.49 (or
GIT)
----------
If you start .NET apps they will fail with stack overflows and some exceptions
thrown.
The exception type tells us what we are dealing with: 0xe0434f4d
For the uninitiated: this an exception type exclusively thrown by .NET common
language runtime (CLR).
Using my specially hacked wine to run tools like windbg one can get a raw
estimate by looking at native method callstack:
--- snip ---
0:000> sxe clr
..
0:000> .load clr20\sos.dll
..
0:000> g
..
0:000> kb
ChildEBP RetAddr Args to Child
WARNING: Stack unwind information not available. Following frames may be wrong.
0034efb8 79f97065 e0434f4d 00000001 00000001 KERNEL32!RaiseException+0x78
0034f018 7a0945a4 00a11cb4 00000000 00000000
mscorwks!RaiseTheExceptionInternalOnly+0x226
0034f0dc 02fa364b 00000000 0000007f 0034f138 mscorwks!JIT_Throw+0xd0
0034f1d8 79e88f63 00000000 0012e0f8 0034f22c 0x2fa364b
0034f1f8 79e88f63 00000000 00000000 0016b200 mscorwks!CallDescrWorker+0x33
0034f210 79e88ee4 0034f2e8 00000002 0034f2b0 mscorwks!CallDescrWorker+0x33
..
--- snip ---
JIT code is at 0x2fa364b which transfers managed exceptions using
mscorwks!JIT_Throw() to native code/OS.
Lets look at CLR exception info...
--- snip ---
0:000> !PrintException
Exception object: 00a11cb4
Exception type: System.TypeInitializationException
Message: The type initializer for 'System.Globalization.TextInfo' threw an
exception.
InnerException: <none>
StackTrace (generated):
<none>
StackTraceString: <none>
HResult: 80131534
--- snip ---
And the managed code callstack...
--- snip ---
0:000> !ClrStack
OS Thread Id: 0xf (0)
ESP EIP
0034f040 7b8414d8 [HelperMethodFrame: 0034f040]
0034f0e4 02fa364b System.Globalization.TextInfo.GetNativeTextInfo(Int32)
0034f114 02fa3511 System.Globalization.TextInfo.get_InvariantNativeTextInfo()
0034f140 02fa193d System.String.Compare(System.String, Int32, System.String,
Int32, Int32, System.StringComparison)
0034f16c 02fa15a1
System.Security.Util.URLString.PreProcessForExtendedPathRemoval(System.String,
Boolean)
0034f184 02fa10b0 System.AppDomainSetup.NormalizePath(System.String, Boolean)
0034f1a4 02fa06d6
System.AppDomainSetup.SetupDefaultApplicationBase(System.String)
0034f1bc 02fa02cc System.AppDomain.SetupFusionStore(System.AppDomainSetup)
0034f1d4 02fa01fa System.AppDomain.SetupDomain(Boolean, System.String,
System.String)
0034f42c 79e88f63 [GCFrame: 0034f42c]
0034f9e0 79e88f63 [DebuggerClassInitMarkFrame: 0034f9e0]
--- snip ---
Some native method call in GetNativeTextInfo() seems to be the culprit.
For many (string) resource based stuff to work, a unicode OS casing table is
required.
The table for the invariant version is built from external .NLS file.
To make story short: wine does not ship the default case mapping table for
unicode characters: "l_intl.nls".
This is a "must" requirement and failure results in early
TypeInitializationException while setting up default application domain.
Short fix: copy the file from your windows system32 directory to wine system32.
Long run fix: let wine generate/install this file. Not a big deal.
Now simple .NET _console_ based apps (like "Hello World") will work.
---------------------------------------
Stay tuned, more goodies to come ...
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30075
Bug #: 30075
Summary: Microsoft .NET Framework 4.5 Developer Preview CLR
needs kernel32.dll WerRegisterRuntimeExceptionModule
(returning S_OK) to run .NET apps
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
after upgrading an existing .NET Framework 4.0 WINEPREFIX with .NET Framework
4.5 (dev preview) some simple apps that previously worked failed to run.
I created a simple C# based .NET "hello world" console app using the provided
C# compiler (csc.exe) in .NET 4.0 prefix and it fails to execute after .NET 4.5
CLR upgrade:
--- snip ---
002b:Starting process
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\hello.exe"
(entryproc=0x40233e)
...
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret KERNEL32.GetProcAddress() retval=00000000 ret=008378fe
...
002b:Call KERNEL32.LoadLibraryExW(0032f944
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorrc.dll",00000000,00000002)
ret=008e1f58
002b:Ret KERNEL32.LoadLibraryExW() retval=00f00001 ret=008e1f58
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9
...
--- snip ---
It seems there is an improved integration of error reporting with WER.
MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd408167%28v=vs.85%…
Adding a stub returning E_NOTIMPL doesn't make the CLR happy:
--- snip ---
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret KERNEL32.GetProcAddress() retval=7b825418 ret=008378fe
002b:Call KERNEL32.WerRegisterRuntimeExceptionModule(0032f88c
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",00740000)
ret=00837915
002b:fixme:wer:WerRegisterRuntimeExceptionModule
(L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",
0x740000) stub!
002b:Ret KERNEL32.WerRegisterRuntimeExceptionModule() retval=80004001
ret=00837915
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9
--- snip ---
You have to return S_OK to please the CLR.
With that change "hello world" runs again. Yay!
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=15437
Summary: Company of Heroes Opposing Fronts: Installer fails
Product: Wine
Version: 1.1.5
Platform: PC-x86-64
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: xvachon(a)gmail.com
Created an attachment (id=16303)
--> (http://bugs.winehq.org/attachment.cgi?id=16303)
log
Installation of the game is not possible. Exception EAccessViolation error in
module GameInst.exe happens. According to test data the game had to be
installed from a Windows installation in order to be played. A log is attached.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30072
Bug #: 30072
Summary: Microsoft .NET Framework 4.5 Developer Preview
installer needs some wevtapi.dll stubs
(EvtOpenChannelConfig, ...)
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
continuation of bug 29742
After a stub "wevtapi" dll is provided the installer still crashes.
A stub is needed for the following event API functions:
EvtOpenChannelConfig
EvtGetChannelConfigProperty
EvtSetChannelConfigProperty
EvtSubscribe
With these stubs in place the installer doesn't crash and continues.
winecfg -> "Windows 7"
--- snip ---
$ WINEDEBUG=+tid,+loaddll,+wevtapi wine dotNetFx45_Full_x86_x64.exe /q
...
0015:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\wuapi.dll"
at 0xf7180000: builtin
000f:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\rstrtmgr.dll" at 0xf75f0000: builtin
001d:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\wevtapi.dll" at 0xf7340000: builtin
001d:trace:wevtapi:DllMain (0x0xf7340000, 1, (nil))
001d:fixme:wevtapi:EvtOpenChannelConfig stub((nil),
L"Microsoft-Windows-CAPI2/Operational", 0)
001d:fixme:wevtapi:EvtGetChannelConfigProperty stub((nil), 0, 0, 16, 0x61c254,
0x61c270)
001d:fixme:wevtapi:EvtSetChannelConfigProperty stub((nil), 0, 0, 0x61c24c)
001d:fixme:wevtapi:EvtSubscribe stub((nil), 0x80,
L"Microsoft-Windows-CAPI2/Operational", (null), (nil), (nil), (nil), 1)
...
--- snip ---
$ sha1sum dotNetFx45_Full_x86_x64.exe
e3ffcb31565ebee65cc95c93db7d11eee2055d68 dotNetFx45_Full_x86_x64.exe
$ wine --version
wine-1.4-rc6-1-ge11565b
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=30074
Bug #: 30074
Summary: Microsoft .NET Framework 4.5 Developer Preview
installer needs stub wusa.exe
Product: Wine
Version: 1.4-rc6
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
continuation of bug 30072
The installer now aborts due to missing "wusa.exe" executable.
I didn't find any installer on MS downloads that contains this standalone
component (only updates).
With a stub executable provided the installer is happy:
--- snip ---
$ WINEDEBUG=+tid,+wusa wine ./dotNetFx45_Full_x86_x64.exe -q
...
fixme:wusa:wmain stub: L"wusa.exe"
L"C:\\711ec06a13d5ed1f9b3e\\Windows6.1-KB958488-v6001-x86.msu" L"/quiet"
L"/norestart"
...
--- snip ---
At least the .NET Framework 4.5 installation finishes without further critical
error in basic ui or silent mode.
Although .NET Framework 4.5 is an update of .NET Framework 4.0, no previous
install of .NET Framework 4.0 is required (winetricks -q dotnet40).
One problem will turn up later: mscoree.dll is still builtin (Mono
placeholder/fake) which will prevent from loading CLR.
Actually this component gets updated through
"Windows6.1-KB958488-v6001-x86.msu" (Microsoft .NET Framework 4.0 Shared ->
KB958488) Windows6.1-KB958488-x86.cab.
Due to wusa.exe stub this update is skipped.
Maybe a winetricks recipe will take care of that in future (manually
extracting/unpacking the missing dlls from msu).
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=12099
Summary: .NET Framework 1.1 installer requires loadperf.dll in
case of AeDebug -> Auto=0 (unhandled exception dialog)
Product: Wine
Version: CVS/GIT
Platform: All
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Created an attachment (id=11486)
--> (http://bugs.winehq.org/attachment.cgi?id=11486)
example patch to add loadperf.dll and simple UnloadPerfCounterTextStringsW stub
preventing .NET 1.1 installer exception
Hello,
VS.NET 7.x installers modify AeDebug which results in error message box from
.NET Framework 1.1 installer due to an unhandled exception.
With default AeDebug Auto=1 and standalone .NET 1.1 installation you won't
notice it because this exception doesn't affect overall "success" result of
installer.
You can capture output from console to see winedbg actually spawned.
VS.NET 7.x installers add/modify the following JIT debugging keys:
--- snip ---
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\AeDebug\Debugger
Auto: 1 -> 0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Default: cordbg.exe !a 0x%x8
--- snip ---
Extract from .msi file:
--- snip ---
_FldbVs7eve_RegFile_887_00017.3643236F_FC70_11D3_A536_0090278A1BB8 2
SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug Auto 0
_VS_Debugging___VS7JIT_____X86.3643236F_FC70_11D3_A536_0090278A1BB8)
..
--- snip ---
You can simulate the behaviour on clean ~/.wine if you manually set
AeDebug/Auto=0 (default is 1) and then execute the standalone .NET 1.1
installer.
--- snip ---
002d:Call KERNEL32.lstrlenA(0034f55c "2008-03-17
21:20:25\t\tStarting\tUninstalling performance counters\r\n") ret=79e88b92
..
002d:Call KERNEL32.LoadLibraryA(79e61310 "loadperf.dll") ret=79e907ed
002d:Ret KERNEL32.LoadLibraryA() retval=00000000 ret=79e907ed
002d:Call KERNEL32.GetLastError() ret=79e907f9
002d:Ret KERNEL32.GetLastError() retval=0000007e ret=79e907f9
002d:Call KERNEL32.RaiseException(c06d007e,00000000,00000001,0034f960)
ret=79e9082c
002d:trace:seh:raise_exception code=c06d007e flags=0 addr=0x7b8419a0
002d:trace:seh:raise_exception info[0]=0034f910
002d:trace:seh:raise_exception eax=7b82c3e9 ebx=7b8af3e4 ecx=00000000
edx=0034f904 esi=0034f904 edi=0034f880
002d:trace:seh:raise_exception ebp=0034f868 esp=0034f804 cs=0073 ds=007b
es=007b fs=0033 gs=003b flags=00200212
002d:trace:seh:call_stack_handlers calling handler at 0x402518 code=c06d007e
flags=0
..
002d:Call KERNEL32.UnhandledExceptionFilter(0034f350) ret=7c34c456
wine: Unhandled exception 0xc06d007e at address 0x7b8419a0 (thread 002d),
starting debugger...
002d:Call user32.MessageBoxA(00000000,0034efd8 "Unhandled exception 0xc06d007e
at address 0x7b8419a0.\nDo you wish to debug it?",7b8a3e47 "Exception
raised",00000014) ret=7b841deb
--- snip ---
The message box is shown with the option to dismiss the exception or to debug
it.
This can be pretty confusing to users who have no knowledge how to deal with
this.
Well, actually this exception should never occur.
Wine can prevent this problem by providing a simple loadperf.dll and
UnloadPerfCounterTextStringsW stub.
Output after patch:
--- snip ---
0041:Ret KERNEL32.LoadLibraryA() retval=607d0000 ret=79e907ed
0041:Call KERNEL32.InterlockedExchange(79e96fa8,607d0000) ret=79e9083e
0041:Ret KERNEL32.InterlockedExchange() retval=00000000 ret=79e9083e
0041:Call KERNEL32.GetProcAddress(607d0000,79e919b4
"UnloadPerfCounterTextStringsW") ret=79e908c4
0041:Ret KERNEL32.GetProcAddress() retval=607d8808 ret=79e908c4
0041:Call loadperf.UnloadPerfCounterTextStringsW(0034f9d0 L"u
\"ASP.NET_1.1.4322\"",00000001) ret=79e86e64
0041:fixme:loadperf:UnloadPerfCounterTextStringsW (L"u \"ASP.NET_1.1.4322\"",
1): stub!
0041:Ret loadperf.UnloadPerfCounterTextStringsW() retval=00000000 ret=79e86e64
--- snip ---
Please add this dll and the UnloadPerfCounterTextStringsW stub.
The attached patch is provided as example to quickly validate the problem
solution.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=20291
Summary: File Maker 10 Advanced installs fine but does not
start in Debian 5 wine version 1.01
Product: WineHQ Bugzilla
Version: unspecified
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: bugzilla-unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: ialsahili(a)gmail.com
Here is the message that appears when I try to run the program in terminal:
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=20289
Summary: File Maker 10 Advanced installs fine but does not
start in Debian 5 wine version 1.01
Product: WineHQ Bugzilla
Version: unspecified
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: bugzilla-unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: ialsahili(a)gmail.com
Here is the message that appears when I try to run the program in terminal:
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:advapi:RegisterEventSourceW ((null),L"Bonjour Service"): stub
fixme:winsock:WS_setsockopt Unknown IPPROTO_IP optname 0x00000013
fixme:winsock:WSAIoctl SIO_GET_EXTENSION_FUNCTION_POINTER
{f689d7c8-6f1f-436b-8a53-e54fe351c322}: stub
fixme:winsock:WS_setsockopt Unknown level: 0x00000029
fixme:winsock:WS_setsockopt Unknown level: 0x00000029
fixme:winsock:WS_setsockopt Unknown level: 0x00000029
fixme:winsock:WS_setsockopt Unknown level: 0x00000029
fixme:winsock:WSAIoctl SIO_GET_EXTENSION_FUNCTION_POINTER
{f689d7c8-6f1f-436b-8a53-e54fe351c322}: stub
fixme:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request: stub
err:module:attach_process_dlls "odbc32.dll" failed to initialize, aborting
err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program
Files\\FileMaker\\FileMaker Pro 10 Advanced\\FileMaker Pro Advanced.exe"
failed, status c0000005
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=29742
Bug #: 29742
Summary: Microsoft .NET Framework 4.5 Developer Preview
installer crashes due to missing "wevtapi.dll"
Product: Wine
Version: 1.4-rc1
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
Microsoft .NET Framework 4.5 Developer Preview crashes due to missing
"wevtapi.dll"
You need to set WinVer to "Windows 7" before running installer.
--- snip ---
002c:Call KERNEL32.LoadLibraryW(0084d4b8 L"C:\\windows\\System32\\wevtapi.dll")
ret=1004816b
002c:Ret KERNEL32.LoadLibraryW() retval=00000000 ret=1004816b
...
002c:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,00cec264)
ret=1008c0cb
002c:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b839297
ip=7b839297 tid=002c
002c:trace:seh:raise_exception info[0]=19930520
002c:trace:seh:raise_exception info[1]=00cec290
002c:trace:seh:raise_exception info[2]=100a7f84
002c:trace:seh:raise_exception eax=7b8262d1 ebx=7b8a96a8 ecx=19930520
edx=00cec174 esi=00cec250 edi=00cec1d0
002c:trace:seh:raise_exception ebp=00cec1b8 esp=00cec154 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000287
002c:trace:seh:call_stack_handlers calling handler at 0x1009f789 code=e06d7363
flags=1
--- snip ---
This dll implements another Windows Event Log API (starting with Windows
Vista).
MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385785%28v=vs.85%…
Download:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.