Hello,
You can reduce the verbosity of the +relay:
https://wiki.winehq.org/Wine_Developer% ... _behaviour
I have a set of convenient .reg files I swap out as needed to shrink the relay size to something more manageable. Here is one example you can try and build on if you want:
Code: Select all
$ cat ~/.config/wine/filter-wine-except-strings.reg
REGEDIT4
[HKEY_CURRENT_USER\Software\Wine\Debug]
"RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlTryEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;kernel32.TlsGetValue;kernel32.TlsSetValue;kernel32.FlsGetValue;kernel32.FlsSetValue;kernel32.SetLastError;ntdll.RtlTimeToTimeFields;ntdll.RtlUTF8ToUnicodeN;ucrtbase.bsearch;ucrtbase.strcmp;KERNEL32.ReadProcessMemory;ntdll.RtlSizeHeap;ntdll.NtReadVirtualMemory;combase.CoTaskMemAlloc;KERNEL32.MultiByteToWideChar;ntdll.NtEnumerateValueKey;ucrtbase.towlower;ucrtbase.iswalpha;ucrtbase.iswspace;ucrtbase.iswalnum;ucrtbase._wcsnicmp;ucrtbase._wcsicmp;KERNEL32.SetFilePointerEx;ntdll.NtSetInformationFile;KERNEL32.ReadFile;ntdll.NtReadFile;KERNEL32.LCMapStringW;ntdll.RtlAllocateHeap;msvcr120.free;ucrtbase.free;ucrtbase.memset;ucrtbase.memcmp;ucrtbase.malloc;ucrtbase.memcpy;msvcr120.memcpy;ntdll.memcpy;ntdll.RtlNtStatusToDosError;KERNEL32.IsBadStringPtrW;ntdll.RtlFreeHeap;KERNEL32.HeapFree;;msvcrt.memcpy;msvcr120.memcpy_s;msvcrt.memcmp;msvcrt.iswcntrl;ntdll._wcsicmp;ntdll.NtQueryDefaultLocale;ntdll.LdrAccessResource;ntdll.LdrFindResource_U;ntdll.NtQueryValueKey;ntdll.NtEnumerateKey;advapi32.RegOpenKeyExW;advapi32.RegQueryValueExW;setupapi.SetupDiGetDevicePropertyW;ntdll.RtlInitializeCriticalSection;ntdll.RtlIsDosDeviceName_U;ntdll.RtlFreeUnicodeString;ntdll.RtlLockHeap;ntdll.RtlUnlockHeap;ntdll.NtOpenKeyEx;advapi32.RegOpenKeyW;msvcr120.realloc;msvcr120.malloc;msvcr120.tolower;msvcr120.toupper;msvcr120.memset;KERNEL32.InterlockedDecrement;KERNEL32.GlobalLock;KERNEL32.GlobalUnlock;KERNEL32.LockFileEx;KERNEL32.UnlockFileEx;ntdll.NtLockFile;ntdll.NtUnlockFile;msvcr120.feof;user32.GetDpiForSystem;ntdll.RtlDowncaseUnicodeChar;msvcr120.memcmp;msvcr120.ldiv;"
You're welcome to read that wiki page and run that command to figure out the lines taking up the most space, and add them to your RelayExclude if they're just noise.
Here is the gist of a helper script I use:
Code: Select all
$ cat /home/gaming/wine_jail/bin/0_exports.sh
export WINE=/opt/wine-staging/bin/wine
export WINEPREFIX=/home/gaming/.bnet
export WINEDEBUG=-all
Code: Select all
$ /home/gaming/wine_jail/bin/0_exports.sh
$ $WINE regedit ~/.config/wine/filter-wine-except-strings.reg
This technique in logging is helpful to know:
https://wiki.winehq.org/Wine_Developer% ... ing_output
Excerpts from the above wiki:
Code: Select all
$ mknod /tmp/debug_pipe p
$ $WINE setup.exe &>/tmp/debug_pipe
And on other terminal:
Ctrl+c on that other terminal to halt that cat, which also halts WINE's execution, until that /tmp/debug_pipe is read from again.
Once you are about to approach the problematic part of the program, you ctrl+c the original cat, and you just do:
Code: Select all
$ cat /tmp/debug_pipe >> /tmp/wine.log
Also you can add in your own notes into the log as you're navigating the program, e.g.:
Code: Select all
$ echo "PRESSING OK ON MESSAGE BOX" >> /tmp/wine.log
or:
Code: Select all
$ echo "SHUTTING DOWN APP" >> /tmp/wine.log
or even prefixing the log before you start with bookkeeping info:
Code: Select all
$ echo "Wine version:" >> /tmp/wine.log
$ $WINE --version >> /tmp/wine.log
You can then search for your notes later in the log, and use them as "landmarks" in order to orient yourself.
Remember that >> appends, and > will replace the file.
The RelayExclude and also this technique in logging will help you substantially shrink down that log file.
My guess is that e06d7363 is an application specific exception was defined by a programmer of that application (I have not looked/verified this). If possible you could contact their support and ask them about that exception to get context. Personally I'd dig into the wine log and figure out what is going wrong as you'd have to do that anyway in order to get Wine working. I might be reading this situation wrong though.
EDIT: This looked informative, maybe this is the same exception
https://devblogs.microsoft.com/oldnewth ... 0/?p=13273
Other suggestions:
Look for what is happening before the application-specific exception is raised. Search for 'exception', or ':seh:'. Looking for error return codes in the relay RETs might be illuminating. You can then add and refine WINEDEBUG trace channels and rerun as necessary to get better information. You can probably spend hours and hours doing this, trying to figure things out- I have.
I'm really an amateur at this others might be able to help far better.