How to debug application crash (page fault on execute access)

Questions about Wine on Linux
Locked
elvetemedve
Newbie
Newbie
Posts: 3
Joined: Mon Jan 30, 2023 9:18 am

How to debug application crash (page fault on execute access)

Post by elvetemedve »

I've installed Rekordbox 6.6.9 and now try to understand why it does crash when I run it.
The error message is this:
Unhandled exception: page fault on execute access to 0x0000000000000000 in 64-bit code (0000000000000000).
See further details in the attached log.

The output of winedbg info thread highlights a line in thread 0x11c, marked with an arrow (<==). I guess it's pointing to a memory where there is no code and that's what the page fault refers to. Maybe an app dependency is missing? Though I'm not sure about that.

So if I could can get some help about how to trace this back to the source of the problem would be very great.

Environment
  • Wine version: 8.0 (stable)
  • OS: Arch Linux (x86_64)
  • winecfg changes:
    Windows version: Windows 10
  • registry changes:
    HKEY_CURRENT_USER\Software\Wine\Direct3D renderer = vulkan
  • Direct3D provider: XDVK
Attachments
rekordbox_winedbg.zip
winedbg log
(3.17 KiB) Downloaded 56 times
jkfloris
Level 12
Level 12
Posts: 3141
Joined: Thu Aug 14, 2014 10:10 am

Re: How to debug application crash (page fault on execute access)

Post by jkfloris »

The easiest way to find out why a program is not working is to look up what information is already available.
Rekordbox detect that the program is running with Wine and therefore does not work.
https://bugs.winehq.org/show_bug.cgi?id=50146
And it seems that this is done on purpose
https://forums.pioneerdj.com/hc/en-us/c ... 0002406523
So the solution is to hide the Wine version with wine-staging
(winecfg → Staging → Hide Wine version from applications)
registry changes:
HKEY_CURRENT_USER\Software\Wine\Direct3D renderer = vulkan
The vulkan renderer is not quite finished yet, so if something doesn't work, disable it.
Direct3D provider: XDVK
Keep in mind that dxvk is a separate project.
elvetemedve
Newbie
Newbie
Posts: 3
Joined: Mon Jan 30, 2023 9:18 am

Re: How to debug application crash (page fault on execute access)

Post by elvetemedve »

Thanks for pointing out these.

I forgot to mention that I have tried get it running by both Wine 8.0 stable and staging versions. Also ticked off the "Hide Wine version" option. Both try failed in the same way.

Regarding Vulkan, I'm happy to switch it back to the default renderer. I just assumed that I might have a better luck with a newer implementation (even if incomplete). But it did not make a difference in this case.

What's the next best way to continue investigation (if there is any without understanding Wine under the hood)?
jkfloris
Level 12
Level 12
Posts: 3141
Joined: Thu Aug 14, 2014 10:10 am

Re: How to debug application crash (page fault on execute access)

Post by jkfloris »

It looks like that the program crashes pretty soon. Are there any screens, like the login screen, displayed?
Could you start the RekordBoxAgent?

Code: Select all

drive_c/Program Files/Pioneer/rekordbox 6.6.10/rekordboxAgent-win32-x64
wine rekordboxAgent.exe
I can't close the agent, so the only solution is to stop all wine processes with:

Code: Select all

wineserver -k
elvetemedve
Newbie
Newbie
Posts: 3
Joined: Mon Jan 30, 2023 9:18 am

Re: How to debug application crash (page fault on execute access)

Post by elvetemedve »

After a clean installation I can see the account login screen. Authentication is also successful. Finally the main application window is displayed as well as the "Unexpected application error".

Rekordbox Agent can be started and I can shut it down by pressing Ctrl+C. Though I noticed that it keeps trying to fetch some configuration value which eventually fails. I'm not sure if the two are related, but it looks like a missing registry key initiates the config loading.

Code: Select all

[230208T164538.376+0100] E/tray ProcessUncleanExitError: QUERY command exited with code 1:
reg: Unable to find the specified registry key

    at mkErrorMsg (C:\Program Files\Pioneer\rekordbox 6.6.10\rekordboxAgent-win32-x64\resources\app.asar\node_modules\winreg\l
ib\registry.js:111:12)
    at ChildProcess.<anonymous> (C:\Program Files\Pioneer\rekordbox 6.6.10\rekordboxAgent-win32-x64\resources\app.asar\node_mo
dules\winreg\lib\registry.js:648:10)
    at ChildProcess.emit (node:events:526:28)
    at ChildProcess.emit (node:domain:475:12)
    at maybeClose (node:internal/child_process:1092:16)
    at Socket.<anonymous> (node:internal/child_process:451:11)
    at Socket.emit (node:events:526:28)
    at Socket.emit (node:domain:475:12)
    at Pipe.<anonymous> (node:net:687:12)
006c:fixme:icon:NtUserDrawIconEx Error retrieving icon frame 0
006c:fixme:imm:ImeSetActiveContext (0000000000010026, 0): stub
006c:fixme:imm:ImmReleaseContext (0000000000010020, 0000000000010026): stub
01f8:fixme:winsock:setsockopt Ignoring SO_RANDOMIZE_PORT
0158:fixme:file:ReplaceFileW Ignoring flags 2
[230208T164548.398+0100] I/auth AuthManager:002
[230208T164548.400+0100] I/auth Getting AWS ID-Token from Cloud-API...
[230208T164548.607+0100] I/auth Waiting refreshing credential...
[230208T164548.822+0100] I/auth Done.
[230208T164548.825+0100] I/auth Refreshing AWS Credentials (refresh)
[230208T164549.373+0100] I/auth Waiting refreshing credential...
[230208T164549.612+0100] I/auth Waiting refreshing credential...
[230208T164549.655+0100] I/notification Fetching the notifications...
[230208T164549.756+0100] I/auth UID Set: 6706962219824263b0cfbe61f24f4191
[230208T164549.938+0100] I/notification Done.
[230208T164549.940+0100] I/notification Config: fetchIntervalSec:43200 / Last => 2023-02-08T15:45:49+00:00 / Next => 2023-02-0
9T03:45:49+00:00
02b4:fixme:ole:CoInitializeSecurity 0000000000000000, -1, 0000000000000000, 0000000000000000, 0, 3, 0000000000000000, 0, 0000000000000000 stub
(node:260) UnhandledPromiseRejectionWarning: Error: Command failed: C:\users\geza\Temp\9eb86faf-9f8b-45d3-b830-c55896f7ed4d.tm
p.bat
The contents of the batch file above is like this:

Code: Select all

@echo off
wmic path win32_process get Commandline /format:csv | findstr rekordbox.exe
I tried to analyse this and run the wmic command alone which fails immediately:

Code: Select all

wine wmic                                                                                   
002c:fixme:winediag:LdrInitializeThunk wine-staging 8.1 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0080:fixme:wineusb:add_usb_device Interface 1 has 2 alternate settings; using the first one.
0080:fixme:wineusb:add_usb_device Interface 2 has 2 alternate settings; using the first one.
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
Error: Command line not supported
I don't know if it's related to the app crash, but definitely a clue.
Attachments
Main Screen Screenshot from 2023-02-08 16-43-31.png
Authentication Screenshot from 2023-02-08 16-42-34.png
Authentication Screenshot from 2023-02-08 16-42-34.png (7.34 KiB) Viewed 1310 times
Login Screenshot from 2023-02-08 16-40-28.png
Locked