How to debug? EAC does not recognize plugin dlls

Questions about Wine on Linux
Locked
jred99
Level 1
Level 1
Posts: 5
Joined: Mon Jul 03, 2017 5:34 pm

How to debug? EAC does not recognize plugin dlls

Post by jred99 »

Hi,
I'm running wine 2.11 on Ubuntu 17.04.
When I install Exact Audio Copy 1.3 and run it, it doesn't load the plugin DLLs it comes bundled with in the program directory (works fine on native Windows 7).
I ran it with:

Code: Select all

WINEDEBUG=+relay wine ~/.wine/drive_c/Program\ Files/Exact\ Audio\ Copy/EAC.exe
and while I see EAC access some DLLs in the program directory, it doesn't access the plugin ones. The The presence of the plugins DLLs is supposed to be adequate for EAC to recognize them.

Any suggestions for how to debug further what's going on?
I filed a bug: https://bugs.winehq.org/show_bug.cgi?id=43270.
Thanks,
Josh
jred99
Level 1
Level 1
Posts: 5
Joined: Mon Jul 03, 2017 5:34 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by jred99 »

To clarify a bit - the end result is that EAC starts up, outputs no errors that I can see, but when I go to the dialog that lists plugins, nothing shows up.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by Bob Wya »

One gotcha with Wine is the way you start Windows applications (with Wine).
See WineHQ: Wine User's Guide - 3.1 How to install and run Windows programs ...

Running an application with:

Code: Select all

wine start ...
supplies additional context to the application.
Windows applications add the present working directory to their executable PATH.
So ignoring this - like you have (in your first post) - can result in helper .DLL's and .EXE files not being found.

Obviously this probably won't affect / correct your particular issue... But it's certainly worth bearing in mind! 8)

I've seen applications that have to be started with:

Code: Select all

wine start ...
or they failed in subtle ways... :?

Bob
jred99
Level 1
Level 1
Posts: 5
Joined: Mon Jul 03, 2017 5:34 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by jred99 »

Thanks for the suggestions, Bob. I tried using 'wine start' and things like 'cd ..path/to/EAC.exe ; wine EAC.exe' and so forth. They all result in EAC starting without plugins loaded.

On native windows7, I notice the EAC shortcut starts EAC in the Program Files/Exact Audio Copy/Microsoft.VC80.CRT subdirectory. I tried cd'ing there and starting EAC.exe, but that didn't help either.

I was expecting that EAC, when it starts, would list the DLLs in the program directory, then look for plugins among them. So I was expecting that the WINEDEBUG=+all logs would include some such request. But I wasn't quite sure what too look for in the logs.

Any suggestions of how to debug further?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by Bob Wya »

@jred99

Yup, you probably want to try:

Code: Select all

export WINEDEBUG=+loaddll
cd "${WINEPREFIX:-${HOME}/.wine}/drive_c/Program Files/Exact Audio Copy"
wine start EAC.exe &>eac_console_log.txt
I have vaguely tested the application under Wine (but not under Windows)...
I can reproduce the issue with no Audio Plugins being loaded.
There's nothing obvious in the console output - to suggest why... :cry:

Bob
jred99
Level 1
Level 1
Posts: 5
Joined: Mon Jul 03, 2017 5:34 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by jred99 »

WINEDEBUG=+loaddll seemed to show the DLLs that were loaded, but the plugin dlls did not appear in the output anywhere.

When I ran with WINEDEBUG=+all, there are msgs trying to access files called "%1.dll", which almost sounds like a substitution placeholder wasn't substituted. Is this expected? :

Code: Select all

15888.476:000c:000d:trace:file:RtlDosPathNameToNtPathName_U (L".\\%1.dll",0x34f6f0,(nil),(nil))
15888.476:000c:000d:trace:file:RtlGetFullPathName_U (L".\\%1.dll" 520 0x34f494 (nil))
15890.661:000c:000d:trace:module:get_load_order looking for L"%1.dll"
15890.662:000c:000d:trace:module:get_load_order got hardcoded default for L"%1.dll"
15890.663:000c:000d:trace:module:load_builtin_dll Trying built-in L"%1.dll"
15890.663:000c:000d:warn:module:load_dll Failed to load module L"%1"; status=c0000135
15890.663:000c:000d:warn:module:load_builtin_dll cannot open .so lib for builtin L"%1.dll": /opt/wine-devel/bin/../lib/wine/%1.dll.so: cannot open shared object file: No such file or directory
15891.494:000c:000d:Call KERNEL32.LoadLibraryExW(00172958 L"%1",00000000,00000002) ret=7efecca1
15892.128:000c:000d:trace:module:LdrGetDllHandle L"%1" -> (nil) (load path L"C:\\windows\\system32;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem")
15892.783:000c:000d:trace:module:load_dll looking for L"%1" in L"C:\\windows\\system32;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by Bob Wya »

jred99 wrote:WINEDEBUG=+loaddll seemed to show the DLLs that were loaded, but the plugin dlls did not appear in the output anywhere.

When I ran with WINEDEBUG=+all, there are msgs trying to access files called "%1.dll", which almost sounds like a substitution placeholder wasn't substituted. Is this expected? :

...
Well %1 is usually the Windows notation for the first command line parameter...
So I'm not sure why it's not being replaced with something more sensible in this context...
But the issue probably occurs shortly before the lines you posted.

Btw your bug report is pretty useless... :lol:

A screenshot for a Wine bug that doesn't involve a graphical glitch, widget error, etc - is completely pointless.

You probably want to attach a full debug log (WINEDEBUG=+all) to your Wine bug report though... That is useful information!!

If the log file is really big - then I find xz can be very helpful. 8)

Bob
jred99
Level 1
Level 1
Posts: 5
Joined: Mon Jul 03, 2017 5:34 pm

Re: How to debug? EAC does not recognize plugin dlls

Post by jred99 »

I attached the WINEDEBUG=+all output to the bug, but had to filter some heap activity to get 'xz -9' below 5MB upload limit.

I had attached the screenshot so people could tell what I was basing my conclusion that the plugins hadn't loaded on. I wasn't confident there was a 1:1 mapping between what shows up in that screenshotted window and the plugins, but it was a difference between the execution on native windows 7 and mentioned the plugins so seemed plausible.

Any suggestions of what to try next?
Locked