WineHQ
Bug Tracking Database – Bug 26541

 Bugzilla

 

Last modified: 2020-12-04 18:09:31 UTC  

Dragon Saga crashes randomly on startup (needs ntdll.DbgUiConvertStateChangeStructure, ntdll.KiRaiseUserExceptionDispatcher, ntdll.NtSetDebugFilterState stub exports)

Bug 26541 - Dragon Saga crashes randomly on startup (needs ntdll.DbgUiConvertStateChangeStructure, ntdll.KiRaiseUserExceptionDispatcher, ntdll.NtSetDebugFilterState stub exports)
Dragon Saga crashes randomly on startup (needs ntdll.DbgUiConvertStateChangeS...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: ntdll
1.3.16
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
https://web.archive.org/web/202011291...
: download, obfuscation
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2011-03-24 08:11 UTC by Dan Kegel
Modified: 2020-12-04 18:09 UTC (History)
2 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: 2a3932a0a22f5f5fb8a90d718e00ae7357c6a990
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Kegel 2011-03-24 08:11:55 UTC
Installing DragonSagaInstaller-0.1.29-20110216.msi
went fine, but
$ cd ~/.wine/drive_c/Program Files/Gravity/Dragon Saga
$ wine Release/DragonSaga.EXE

fails like this:                                          

fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
Unhandled exception: privileged instruction in 32-bit code (0x0123980c).
Backtrace:
=>0 0x0123980c in dragonsaga (+0xe4980c) (0x0032fea0)
  1 0x7edaa2fc call_process_entry+0xb() in kernel32 (0x0032feb8)
  2 0x7edac593 start_process+0x52(peb=0x1) [dlls/kernel32/process.c:1086] in kernel32
Comment 1 Anastasius Focht 2012-03-10 16:43:46 UTC
Hello,

confirming, still present. Crashes randomly on startup.
Uses custom PE compression, API redirection/analysis, thunks/continuations.

If it starts (1 out of 10 times) it hits some msvcr80/msvcp80 insufficiencies hence needs 'winetricks vcrun2005'

$ du -sh *.msi
1.9G	DragonSagaInstaller-0.1.29-20110216.msi

$ sha1sum DragonSagaInstaller-0.1.29-20110216.msi 
8f359ccb7c9a09bb0e06b9f4d3423750df23c51a  DragonSagaInstaller-0.1.29-20110216.msi

$ wine --version
wine-1.4-78-g94953f1

Regards
Comment 2 Anastasius Focht 2013-12-18 10:50:58 UTC
Hello folks,

the random startup failure is still present.
Updating download link.

Relevant trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Gravity/Dragon Saga/Release

$ WINEDEBUG=+tid,+seh,+relay wine ./DragonSaga.EXE >>log.txt 2>&1
...
0025:Call KERNEL32.LoadLibraryA(0033fc70 "kernel32.dll") ret=0158f21e
0025:Ret  KERNEL32.LoadLibraryA() retval=7b810000 ret=0158f21e
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "DebugActiveProcess") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b8215fc ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "GetTickCount") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b823474 ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "GetProcAddress") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b822e5c ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "GetVersion") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b82357c ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "LoadLibraryA") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b8240bc ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "OpenProcess") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b82456c ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "OutputDebugStringA") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b82462c ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "OutputDebugStringW") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b824644 ret=0158f1d1
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc70 "SuspendThread") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=7b8254b4 ret=0158f1d1
0025:Call KERNEL32.LoadLibraryA(0033fc70 "ntdll.dll") ret=0158f21e
0025:Ret  KERNEL32.LoadLibraryA() retval=7bc10000 ret=0158f21e
0025:Call KERNEL32.GetProcAddress(7bc10000,0033fc70 "DbgUiConvertStateChangeStructure") ret=0158f1d1
0025:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=0158f1d1
0025:Call KERNEL32.LoadLibraryA(0033fc4c "kernel32.dll") ret=0158e202
0025:Ret  KERNEL32.LoadLibraryA() retval=7b810000 ret=0158e202
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "DebugActiveProcess") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b8215fc ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "GetTickCount") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b823474 ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "GetProcAddress") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b822e5c ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "GetVersion") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b82357c ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "LoadLibraryA") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b8240bc ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "OpenProcess") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b82456c ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "OutputDebugStringA") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b82462c ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "OutputDebugStringW") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b824644 ret=0158e1aa
0025:Call KERNEL32.GetProcAddress(7b810000,0033fc4c "SuspendThread") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=7b8254b4 ret=0158e1aa
0025:Call KERNEL32.LoadLibraryA(0033fc4c "ntdll.dll") ret=0158e202
0025:Ret  KERNEL32.LoadLibraryA() retval=7bc10000 ret=0158e202
0025:Call KERNEL32.GetProcAddress(7bc10000,0033fc4c "DbgUiConvertStateChangeStructure") ret=0158e1aa
0025:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=0158e1aa
0025:trace:seh:raise_exception code=c0000005 flags=0 addr=0x12397f4 ip=012397f4 tid=0025
0025:trace:seh:raise_exception  info[0]=00000000
0025:trace:seh:raise_exception  info[1]=00000023
0025:trace:seh:raise_exception  eax=0158e5c0 ebx=00000000 ecx=0033fd40 edx=7bca4d20 esi=00000001 edi=012397e8
0025:trace:seh:raise_exception  ebp=0033fe20 esp=0033fd48 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210203
0025:trace:seh:call_stack_handlers calling handler at 0xcb918c code=c0000005 flags=0 
--- snip ---

It seems adding the following stub exports really helps the game (no more random crashes on startup):

--- snip ---
ntdll.DbgUiConvertStateChangeStructure
ntdll.KiRaiseUserExceptionDispatcher
ntdll.NtSetDebugFilterState
--- snip ---

Just remove the comment before each API from ntdll.spec file to have the default unimpl stub generated.

Source: http://source.winehq.org/git/wine.git/blob/b6b9050d58d8baaea843c633f5968be9090214e4:/dlls/ntdll/ntdll.spec#l35

--- snip ---
 35 # @ stub DbgUiConvertStateChangeStructure
...
 47 # @ stub KiRaiseUserExceptionDispatcher
...
 315 # @ stub NtSetDebugFilterState
--- snip ---

$ sha1sum DragonSagaInstaller-0.1.29-20110216.msi 
8f359ccb7c9a09bb0e06b9f4d3423750df23c51a  DragonSagaInstaller-0.1.29-20110216.msi

$ du -sh DragonSagaInstaller-0.1.29-20110216.msi 
1.9G	DragonSagaInstaller-0.1.29-20110216.msi

$ wine --version
wine-1.7.8-248-g8dd9c61

Regards
Comment 3 Anastasius Focht 2013-12-20 11:28:18 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/2a3932a0a22f5f5fb8a90d718e00ae7357c6a990

Thanks Austin

Regards
Comment 4 Alexandre Julliard 2013-12-20 12:43:21 UTC
Closing bugs fixed in 1.7.9.
Comment 5 Anastasius Focht 2020-12-04 18:09:31 UTC
Hello folks,

adding stable download links from Internet Archive for documentation:

Dragon Saga client 1.0:

https://web.archive.org/web/20201129153406/https://dl.rocketfiles.com/download/T0pVNGZBaXFkZm55ZmZxajlUd1dvUDhHVXZkTXJGdHV8RHJhZ29uU2FnYUluc3RhbGxlci0wLjEuMjktMjAxMTAyMTYubXNp/DragonSagaInstaller-0.1.29-20110216.msi

$ sha1sum DragonSagaInstaller-0.1.29-20110216.msi 
196069ac69dcbefe6940c515b9bdab257885e684  DragonSagaInstaller-0.1.29-20110216.msi

$ du -sh DragonSagaInstaller-0.1.29-20110216.msi 
1.9G	DragonSagaInstaller-0.1.29-20110216.msi

Regards


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers