[Bug 33037] Visual Studio 6 can't be installed with WinVer >= Win2K (missing HKEY_PERFORMANCE_DATA 230, process object)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Aug 22 11:02:09 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=33037

--- Comment #14 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

revisiting, still present.

--- snip ---
...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code
(0x00411c09).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:00411c09 ESP:0033b498 EBP:00000000 EFLAGS:00010212(  R- --  I   -A- - )
 EAX:224002eb EBX:ffffff31 ECX:0033bbcc EDX:7ec81764
 ESI:00000000 EDI:0000004e
Stack dump:
0x0033b498:  0000004e 0033bbcc ffffff31 00411474
0x0033b4a8:  00426498 0004005e 00413747 00000001
0x0033b4b8:  0033c9d0 0033c3b8 7ec42000 00000001
0x0033b4c8:  0033b4d8 7bc39504 7eae75e8 7bcd1000
0x0033b4d8:  0033b538 7bc4de89 00110014 ffffffff
0x0033b4e8:  0033b4f8 7bc394e6 7eae75e8 00000001
000c: sel=0067 base=00000000 limit=00000000 16-bit --x
Backtrace:
=>0 0x00411c09 in setup (+0x11c09) (0x00000000)
0x00411c09: cmpb    $0x0,0x0(%esi)
Modules:
Module    Address            Debug info    Name (65 modules)
PE      400000-  48f000    Export          setup
...
Threads:
process  tid      prio (all id:s are in hex)
...
00000034 (D) Z:\home\focht\iso\SETUP.exe
    00000035    0 <==
...
--- snip ---

Adding my workaround from appdb entry also here (scripting 'winedbg' in gdb
proxy mode, patching the ISO installer at runtime).

Save the following snippet to a text file, for example 'vc6-installer-fix':
­
--- snip ---
set $x=0x410000
set $end=0x420000
while(*++$x != 0x07B0B18B && $x < $end)
end
if $x != $end
   set *(int*) $x = 0x5BC0335E
   set *(int*)($x+4) = 0x900004C2
end
cont
--- snip ---

Run the debugger as follows:

--- snip ---
$ winedbg --gdb setup.exe < vc6-installer-fix
--- snip ---

If the installer spawns a sub-installer that crashes due to this bug, you must
first run the main installer and then attach to sub-installer with debugger.

This can be done in automated way, assuming the main installer has already the
started sub-installer:

--- snip ---
­$ winedbg --gdb $(( 16#$(winedbg --command "info proc" | grep
YOUR_SUB_INSTALLER_PROCESS_NAME | cut -f 2 -d " ") )) < vc6-installer-fix­
--- snip ---

It tells 'winedbg' to query process ids, filters out the target process,
converts the PID to decimal and then starts winedbg in gdb proxy mode,
attaching to target process and executing patch script.

This should work for all VC6 installers and even 'Embedded Visual C++' 4.x
ones.

$ wine --version
wine-1.7.24-150-gcf4404c

Regards

-- 
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