[Bug 12099] New: .NET Framework 1.1 installer requires loadperf. dll in case of AeDebug -> Auto=0 (unhandled exception dialog)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Mar 18 15:52:42 CDT 2008


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 at winehq.org
        ReportedBy: focht at 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.



More information about the wine-bugs mailing list