Installing Windows Debugging Tools

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
evelyette
Newbie
Newbie
Posts: 2
Joined: Wed Nov 22, 2017 7:56 pm

Installing Windows Debugging Tools

Post by evelyette »

Hello,

I'm compiling Wine in Docker according to the https://wiki.winehq.org/Building_Wine specifications. This is not an issue, but I was thinking it's worth mentioning since it might be the cause of the issue described below.

Everything compiles fine and I have access to 32-bit/64-bit Wine environment. Now I've installed dotnet46, which conflicts with the dotnet40 (note that I haven't installed dotnet40 previously, but that happened automatically).
# WINEARCH="win64" WINEPREFIX=/home/user/.wine64 winetricks dotnet46
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20171018-next - sha256sum: fba6e574c98f61a82b3a9fa3cec8d2d69245c739dc571c2397bad7167bcd328c with wine-2.21 and WINEARCH=win64
Executing w_do_call dotnet46
------------------------------------------------------
error: dotnet46 conflicts with dotnet40, which is already installed.
------------------------------------------------------
However, I can edit /home/eleanor/.wine64/winetricks.log and remove dotnet40 from the file, which now contains the following entries (after the removal of dotnet40):

Code: Select all

w_workaround_wine_bug-34803
remove_mono
w_workaround_wine_bug-34803
remove_mono
w_workaround_wine_bug-42701
w_workaround_wine_bug-34803
remove_mono
winxp
dotnet45
w_workaround_wine_bug-38959
dotnet46
w_workaround_wine_bug-34803
remove_mono
w_workaround_wine_bug-42701
w_workaround_wine_bug-34803
remove_mono
winxp
dotnet45
Executing the winetricks command again will say that dotnet46 is already installed:
$ WINEARCH="win64" WINEPREFIX=/home/user/.wine64 winetricks dotnet46
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20171018-next - sha256sum: fba6e574c98f61a82b3a9fa3cec8d2d69245c739dc571c2397bad7167bcd328c with wine-2.21 and WINEARCH=win64
Executing w_do_call dotnet46
dotnet46 already installed, skipping
Now, if I try to install Windows Driver Kit (WDK) - not the standalone version, but the latest https://developer.microsoft.com/en-us/w ... driver-kit (wdksetup.exe). Doing that on my host Linux machine results in the RoGetParameterizedTypeInstanceIID error, which is solved by the https://source.winehq.org/git/wine.git/ ... 0382ff54a1 commit (3 days old). However, the installation fails at 66%, so there is bunch of stuff that occurs prior to the application closing - the WDK wizard leads me through the settings and the installation continues until the RoGetParameterizedTypeInstanceIID error, which reverts the installation and closes the wizard.

As such, I've proceeded further into compiling my own version of Wine directly from git - I'm doing this in Docker. Note that I've installed everything the way it states in the documentation and it appears that everything works fine, so the installation was successful (both 64-bit/32-bit Wine). However running wdksetup.exe in the new Wine will result in a WDK installation window appearing for a brief second after which the application crashes. The following is the output printed to stdout:
# WINEARCH="win64" WINEPREFIX=/home/user/.wine64 wine wdksetup.exe
fixme:wer:WerSetFlags (2) stub!
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
err:module:import_dll Library MSVCR120_CLR0400.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
err:service:process_send_command service protocol error - failed to write pipe!
fixme:service:scmdatabase_autostart_services Auto-start service L"clr_optimization_v4.0.30319_64" failed to start: 1053
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
fixme:advapi:DecryptFileW (L"C:\\users\\user\\Temp\\{a2dc32b2-d7ac-425c-9947-551c3b16f848}\\", 00000000): stub
fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0xc91925, 0xcddbd0, 0xcddbe8) stub.
fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0xc72f3d, 28) stub
fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0xeb75a8, 0x1336470, 0x1336488) stub.
fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0xe28861, 28) stub
fixme:kernelbase:QuirkIsEnabled3 (0x33ed18, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:process:GetNumaHighestNodeNumber (0x33f450): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:thread:SetThreadStackGuarantee (0x33f434): stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f028, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e880, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e880, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ecf8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f180, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f158, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f148, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f138, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f0a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f098, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f098, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f100, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eeb0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f120, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e1b8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ed48, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ed58, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e5a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e5a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e4e8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e2f8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 4 0x195cdc 0x33ccac 0x33d318 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x195cc8 0x33ce9c 0x33d508 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x195cc8 0x33ce9c 0x33d508 (nil)
fixme:ole:CoGetApartmentType (0x398fb08, 0x398fb04): semi-stub
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x196c24 0x33e054 0x33e6c0 (nil)
fixme:kernelbase:QuirkIsEnabled3 (0x33ede0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33edd0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33edd0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eef8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eee0, 0xffffffff) stub!
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33dea0 (nil) 0x33de9c) returning a dummy value (current locale)
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33dea0 0x199110 0x33de9c) returning a dummy value (current locale)
fixme:nls:LCMapStringEx unsupported lparam 1aa898
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33e888 (nil) 0x33e884) returning a dummy value (current locale)
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33e888 0x1ab7f0 0x33e884) returning a dummy value (current locale)
fixme:kernelbase:QuirkIsEnabled3 (0x33ed58, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"BootstrapperCore"
fixme:kernelbase:QuirkIsEnabled3 (0x33cc08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33da78, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System.Configuration"
fixme:kernelbase:QuirkIsEnabled3 (0x33cba0, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:kernelbase:QuirkIsEnabled3 (0x33c638, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33d960, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System.Xml"
fixme:kernelbase:QuirkIsEnabled3 (0x33d190, 0xffffffff) stub!
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 4 0x1baadc 0x33d1bc 0x33d828 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x1b86c0 0x33d3ac 0x33da18 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x1b86c0 0x33d3ac 0x33da18 (nil)
fixme:shell:URL_ParseUrl failed to parse L"BootstrapperCore"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Bootstrapper"
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33da18, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1be10c 0x33d74c 0x33ddb8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1be10c 0x33d74c 0x33ddb8 (nil)
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:kernelbase:QuirkIsEnabled3 (0x4f5e940, 0xffffffff) stub!
fixme:ver:GetCurrentPackageId (0x4f5d82c (nil)): stub
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1be108 0x4f5c97c 0x4f5cfe8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1be108 0x4f5cb6c 0x4f5d1d8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1be108 0x4f5cb6c 0x4f5d1d8 (nil)
fixme:ntdll:EtwEventRegister ({8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 0x3aa3b66, (nil), 0x1838f9c) stub.
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f17c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x4f5f19c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:CoGetApartmentType (0x33f968, 0x33f964): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f620, 0xffffffff) stub!
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
fixme:process:FlushProcessWriteBuffers : stub
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x398f928, 0xffffffff) stub!
fixme:ole:CoGetApartmentType (0x33f698, 0x33f694): semi-stub
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x398f6b4, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1af560/0x1af564)->(0xd93d61, 0x398f63c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
I'm interested in understanding why the installation wizard crashes. Could it be somehow connected to Docker image and if not, what would be the likely cause it fails (presumably something is visible in the log to the trained eye).

Also, how would I go about debugging this issue in order to understand why the installation wizard crashes. I know there's a winedbg utility, but I'm not sure whether this is the right tool to use, nor what commands to type into it.
# WINEARCH="win64" WINEPREFIX=/home/user/.wine64 winedbg wdksetup.exe
fixme:wer:WerSetFlags (2) stub!
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
err:module:import_dll Library MSVCR120_CLR0400.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
err:service:process_send_command service protocol error - failed to write pipe!
fixme:service:scmdatabase_autostart_services Auto-start service L"clr_optimization_v4.0.30319_64" failed to start: 1053
WineDbg starting on pid 0034
couldn't load main module (2)
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\user\\data\\wdksetup.exe" failed, status c0000022
Process of pid=0034 has terminated
Wine-dbg>
Wine-dbg>start
No process loaded, cannot execute 'start'
Any ideas are welcome.
User avatar
dimesio
Moderator
Moderator
Posts: 13204
Joined: Tue Mar 25, 2008 10:30 pm

Re: Installing Windows Debugging Tools

Post by dimesio »

Code: Select all

err:module:import_dll Library MSVCR120_CLR0400.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found 
That's one major problem, and 64 bit .NET doesn't install or work in Wine, so you are probably out of luck if you really need 64 bit. You could try wine-mono if you haven't already. That doesn't usually work for newer versions of .NET, but it's worth a try.
evelyette
Newbie
Newbie
Posts: 2
Joined: Wed Nov 22, 2017 7:56 pm

Re: Installing Windows Debugging Tools

Post by evelyette »

Hi,

If I wanted to use wine-mono, do I need to compile the latest version (from source) or can I just install the one in the package repositories? Do I also need to install mono-complete package?

However, for now I'm fine with 32-bit .NET. So switching to 32-bit .NET, let me first install it, which is simple enough. Note that the below command succeeds after removing dotnet40 from /home/eleanor/.wine64/winetricks.log, otherwise dotnet46 is conflicting with dotnet40.
# WINEARCH="win32" WINEPREFIX=/home/user/.wine32 winetricks -q dotnet46
Using winetricks 20171018-next - sha256sum: 0b98bc8ff8067004c00fa80a1406449a77a93e30fe067dbbb4db1d0fdd2fbf68 with wine-2.21 and WINEARCH=win32
Executing w_do_call dotnet46
dotnet46 already installed, skipping
Next, starting wdksetup.exe results in the same issue I had with 64-bit: the WDK wizard starts for a brief second, then terminates immediately and the following is outputted in the console stdout.
# WINEARCH="win32" WINEPREFIX=/home/eleanor/.wine32 wine wdksetup.exe
fixme:wer:WerSetFlags (2) stub!
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0x961925, 0x9adbd0, 0x9adbe8) stub.
fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x942f3d, 28) stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:ntdll:NtQueryInformationToken QueryInformationToken( ..., TokenElevation, ...) semi-stub
fixme:advapi:DecryptFileW (L"C:\\users\\eleanor\\Temp\\{a2dc32b2-d7ac-425c-9947-551c3b16f848}\\", 00000000): stub
fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0xc91925, 0xcddbd0, 0xcddbe8) stub.
fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0xc72f3d, 28) stub
fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0xeb75a8, 0x1336470, 0x1336488) stub.
fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0xe28861, 28) stub
fixme:kernelbase:QuirkIsEnabled3 (0x33ed18, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:process:GetNumaHighestNodeNumber (0x33f450): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:thread:SetThreadStackGuarantee (0x33f434): stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f028, 0xffffffff) stub!
fixme:ntdll:EtwEventRegister ({e13c0d23-ccbc-4e12-931b-d9cc2eee27e4}, 0xfb6b5a, 0x1335370, 0x133ee60) stub.
fixme:ntdll:EtwEventRegister ({763fd754-7086-4dfe-95eb-c01a46faf4ca}, 0xfb6b5a, 0x13357b8, 0x1336278) stub.
fixme:ntdll:EtwEventRegister ({a669021c-c450-4609-a035-5af59af4df18}, 0xfb6b5a, 0x133db88, 0x133ee70) stub.
fixme:ntdll:EtwEventRegister ({cc2bcbba-16b6-4cf3-8990-d74c2e8af500}, 0xfb6b5a, 0x1335458, 0x13354c8) stub.
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e880, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e880, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ecf8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef20, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ef28, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f180, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f158, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f148, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f138, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f0a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f098, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f098, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f100, 0xffffffff) stub!
fixme:wer:WerRegisterRuntimeExceptionModule (L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll", 0xcf0000) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eeb0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f120, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f130, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f150, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e1b8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33f170, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ed48, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ed58, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e5a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e5a8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e4e8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e2f8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33ec88, 0xffffffff) stub!
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 4 0x195e74 0x33ccac 0x33d318 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x195e60 0x33ce9c 0x33d508 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x195e60 0x33ce9c 0x33d508 (nil)
fixme:ole:CoGetApartmentType (0x398fb08, 0x398fb04): semi-stub
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x196dcc 0x33e054 0x33e6c0 (nil)
fixme:kernelbase:QuirkIsEnabled3 (0x33ede0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33edd0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33edd0, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eef8, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33eee0, 0xffffffff) stub!
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LCIDToLocaleName unsupported flags 8000000
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33dea0 (nil) 0x33de9c) returning a dummy value (current locale)
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33dea0 0x19a948 0x33de9c) returning a dummy value (current locale)
fixme:nls:LCMapStringEx unsupported lparam 1aa3c8
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LCIDToLocaleName unsupported flags 8000000
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33e888 (nil) 0x33e884) returning a dummy value (current locale)
fixme:nls:get_dummy_preferred_ui_language (0x8 0x33e888 0x1ab6f0 0x33e884) returning a dummy value (current locale)
fixme:kernelbase:QuirkIsEnabled3 (0x33ed58, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"BootstrapperCore"
fixme:kernelbase:QuirkIsEnabled3 (0x33cc08, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33da78, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System.Configuration"
fixme:kernelbase:QuirkIsEnabled3 (0x33cba0, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:kernelbase:QuirkIsEnabled3 (0x33c638, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33d960, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System.Xml"
fixme:kernelbase:QuirkIsEnabled3 (0x33d190, 0xffffffff) stub!
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 4 0x1b96a4 0x33d1bc 0x33d828 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x1bb088 0x33d3ac 0x33da18 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 3 0x1bb088 0x33d3ac 0x33da18 (nil)
fixme:shell:URL_ParseUrl failed to parse L"BootstrapperCore"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Bootstrapper"
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33e020, 0xffffffff) stub!
fixme:kernelbase:QuirkIsEnabled3 (0x33da18, 0xffffffff) stub!
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1b5164 0x33d74c 0x33ddb8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1b5164 0x33d74c 0x33ddb8 (nil)
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf174, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:kernelbase:QuirkIsEnabled3 (0x4ede940, 0xffffffff) stub!
fixme:ver:GetCurrentPackageId (0x4edd82c (nil)): stub
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:nls:LocaleNameToLCID unsupported flags 8000000
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1bee88 0x4edc97c 0x4edcfe8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1bee88 0x4edcb6c 0x4edd1d8 (nil)
fixme:combase:RoGetParameterizedTypeInstanceIID stub: 2 0x1bee88 0x4edcb6c 0x4edd1d8 (nil)
fixme:ntdll:EtwEventRegister ({8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 0x3aa3b66, (nil), 0x1838f9c) stub.
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf17c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x4edf19c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:CoGetApartmentType (0x33f968, 0x33f964): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x33f620, 0xffffffff) stub!
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
eleanor@ee7155c1166c:~/data$ fixme:ntdll:EtwEventUnregister (deadbeef) stub.
fixme:process:FlushProcessWriteBuffers : stub
fixme:ole:CoGetApartmentType (0x33f688, 0x33f684): semi-stub
fixme:kernelbase:QuirkIsEnabled3 (0x398f928, 0xffffffff) stub!
fixme:ole:CoGetApartmentType (0x33f698, 0x33f694): semi-stub
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x398f6b4, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ole:Context_CC_ContextCallback (0x1ae298/0x1ae29c)->(0xd93d61, 0x398f63c, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
It doesn't report any issue about mscoree.dll library, but the result is the same. Any ideas how to proceed with debugging?
mihaitodor
Newbie
Newbie
Posts: 2
Joined: Thu Nov 23, 2017 6:01 am

Re: Installing Windows Debugging Tools

Post by mihaitodor »

Kudos for getting this far! First, I think it's worth asking why are you going to the trouble of trying to install the Windows Debugging Tools? Are you intending to use WinDBG to debug an app under Wine?

If yes, you'll probably have a hard time getting that to work and you might want to start by using one of the older versions from here, which are offered as standalone installers. I tried to use this myself in the past, but didn't have a clear victory. You can install some of the older versions (like the Windows XP one) out of the box (if you want the x64 version, make sure you run the installer via wine64 msiexec /i installer.msi /qn), but running WinDBG under Wine didn't work well for me (the UI gets into a bad state / becomes corrupted / etc). However, I did have some moderate success running the WinDBG debug server under Wine like so WINEDLLOVERRIDES="dbgeng,dbghelp=n" wine dbgsrv -t tcp:port=1025 (not sure if both those DLL overrides are still needed, so feel free to experiment) and then running my app separately under Wine. Then I started WinDBG on a Windows box like so windbg -premote tcp:server=localhost,port=1025 (and made sure that the 1025 port is forwarded correctly to the Linux box / VM that was running Wine) and I was able to attach to my app running under Wine via the attach to process dialogue. However, for some unknown reason, after breaking execution, stepping through the code made the app crash. It might have been caused by some permission issue, but not sure. When I tried this, I used an Ubuntu 16 VM and a non-root user for Wine. Maybe running under docker with the --privileged flag will give you a better experience. Maybe you'll also need to fiddle with this. Not sure. Also, you might want to try using a local WinDBG command line debugger like so WINEDLLOVERRIDES="dbgeng,dbghelp=n" wine cdb -server tcp:port=1025 -o -v path_to_application and, again, attach to it using windbg -remote tcp:server=host_machine_ip,port=1025 (note that I used -remote instead of -premote this time), but I think this is even harder to get right, since you'll have to make the code files available at the expected location under Wine and use WinDBG as a mere UI, which sends commands to cdb. I think I even tried to just use cdb under Wine, but the console gets busted, IIRC. Please let me know if you'll go down this path and have any success.

By the way, you'll need to install the winbind package if you wish to try the remote debugging feature.

Getting back to your original question, you should probably start by doing some trace debugging, which can get quite verbose, but it might give you a hint about what goes wrong. To do that, you have to set the WINEDEBUG environment variable before running Wine.

For example, I'd start by checking DLLs, registry access and SEH exceptions via WINEDEBUG=+dll,+reg,+seh wine wdksetup.exe and see what you get in the output.

If that doesn't show you anything relevant, you can try enabling relay trace like so: WINEDEBUG=+relay wine wdksetup.exe and maybe add some of the other channels to give you context for stuff to search, since the output will be quite verbose. This will log calls made by your app to the Windows API. If the output will be super-verbose (most likely), you will probably have to filter out stuff via the RelayExclude and RelayFromExclude registry keys from HKCU\Software\Wine\Debug (regular expressions are supported). See here for details.

Another interesting debug channel to try is +snoop, which logs every function call between native DLLs.

See here the entire list of available debug channels.

Lastly, if you just want to do some GDB-style debugging under Wine, winedbg is the way to go. Please note that for x64 apps, you'll have to use wine64 winedbg and you won't get translated symbols in call stacks, because this functionality is not yet implemented AFAIK. winedbg is just a subset of GDB, so reading a GDB tutorial should get you going. You can see which commands are available under winedbg by running it and typing help. Basically, you can do something like Wine-dbg>set $BreakOnFirstChance=1 and then continue running the app until you'll get a crash. You should be able to see the call stack by running bt. You can even make the source code available under winedbg and step trough it (see details here), but it ain't much fun. I recommend trying to get as much as you can via trace debugging by enabling debug channels and, hopefully, you can figure out the problem without having to use a real debugger.

Hope this helps!

Mihai
Locked