http://bugs.winehq.org/show_bug.cgi?id=29352
Bug #: 29352 Summary: NightSky HD crashes on startup Product: Wine Version: 1.3.34 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: msvcp AssignedTo: wine-bugs@winehq.org ReportedBy: RandomAccountName@mail.com Classification: Unclassified
Created attachment 37978 --> http://bugs.winehq.org/attachment.cgi?id=37978 Terminal output
Native msvcp100 works around it (winetricks vcrun2010).
http://bugs.winehq.org/show_bug.cgi?id=29352
--- Comment #1 from Austin English austinenglish@gmail.com 2011-12-15 13:41:21 CST --- fixme:msvcp90:basic_ios_char_ctor (0x32faac) stub fixme:msvcp90:basic_ostream_char_ctor (0x32fa5c 0x32fa60 0) stub
WINEDEBUG=msvcp90,relay,seh,tid trace please.
http://bugs.winehq.org/show_bug.cgi?id=29352
--- Comment #2 from A Wine user RandomAccountName@mail.com 2011-12-16 00:39:40 CST --- Created attachment 37983 --> http://bugs.winehq.org/attachment.cgi?id=37983 +msvcp90,+relay,+seh,+tid trace
http://bugs.winehq.org/show_bug.cgi?id=29352
--- Comment #3 from Rafal Stanilewicz washuu@eastnews.com.pl 2012-01-05 14:06:48 CST --- Created attachment 38271 --> http://bugs.winehq.org/attachment.cgi?id=38271 WINEDEBUG=msvcp90,relay,seh,tid wine NightSkyHD.exe
after unpacking the log is 9 MB big.
http://bugs.winehq.org/show_bug.cgi?id=29352
Rafal Stanilewicz washuu@eastnews.com.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |washuu@eastnews.com.pl
--- Comment #4 from Rafal Stanilewicz washuu@eastnews.com.pl 2012-01-05 14:08:28 CST --- I confirm with wine 1.3.36, so I created and attached my log file for comparison.
http://bugs.winehq.org/show_bug.cgi?id=29352
A Wine user RandomAccountName@mail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #37978|0 |1 is obsolete| | Attachment #37983|0 |1 is obsolete| |
--- Comment #5 from A Wine user RandomAccountName@mail.com 2012-04-01 05:20:57 CDT --- Created attachment 39629 --> http://bugs.winehq.org/attachment.cgi?id=39629 new +msvcp90,+relay,+seh,+tid log
This still crashes in 1.5.1, but with a different backtrace than before.
http://bugs.winehq.org/show_bug.cgi?id=29352
A Wine user RandomAccountName@mail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #39629|text/plain |application/x-bzip2 mime type| |
http://bugs.winehq.org/show_bug.cgi?id=29352
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Ever Confirmed|0 |1
--- Comment #6 from Anastasius Focht focht@gmx.net 2012-04-01 06:47:56 CDT --- Hello,
confirming.
--- snip --- 003d:Call msvcp90.??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ(0032fb68) ret=00403289 003d:trace:msvcp90:basic_ios_char_dtor (0x32fb68) 003d:trace:msvcp90:ios_base_Ios_base_dtor (0x32fb68) 003d:trace:msvcp90:ios_base_Tidy (0x32fb68) 003d:trace:msvcp90:ios_base_Callfns (0x32fb68 0) 003d:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bc723a9 ip=7bc723a9 tid=003d 003d:trace:seh:raise_exception info[0]=00000000 003d:trace:seh:raise_exception info[1]=48657461 003d:trace:seh:raise_exception eax=0032f4f0 ebx=7bca5ff4 ecx=596683e9 edx=48657461 esi=0032f8d4 edi=0032f608 003d:trace:seh:raise_exception ebp=0032f5a8 esp=0032f4c0 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210246 003d:trace:seh:call_stack_handlers calling handler at 0x7bc89250 code=c0000005 flags=0 --- snip ---
Debugging session:
--- snip --- Wine-dbg>bt Backtrace: =>0 0x7de1e498 ios_base_Callfns+0x74(this=0x33fb28, event=EVENT_erase_event) [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:1803] in msvcp90 (0x0033f9c0) 1 0x7de1e542 ios_base_Tidy+0x74(this=0x33fb28) [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:1815] in msvcp90 (0x0033fa10) 2 0x7de1e657 ios_base_Ios_base_dtor+0x9a(obj=0x33fb28) [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:1839] in msvcp90 (0x0033fa50) 3 0x7de1e681 ios_base_dtor+0x1c(this=0x33fb28) [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:1847] in msvcp90 (0x0033fa70) 4 0x7de201fd basic_ios_char_dtor+0x6c(this=0x33fb28) [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:2390] in msvcp90 (0x0033fab0) 5 0x00403289 in nightskyhd (+0x3288) (0x0033fcac) 6 0x00402ed9 in nightskyhd (+0x2ed8) (0x0033fcc0) 7 0x004017eb in nightskyhd (+0x17ea) (0x0033fcf4) 8 0x004093cc in nightskyhd (+0x93cb) (0x0033fda8) 9 0x00408775 in nightskyhd (+0x8774) (0x0033fe40)
Wine-dbg>l 1793 1793 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */ 1794 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */ 1795 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8) 1796 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event) 1797 { 1798 IOS_BASE_fnarray *cur; 1799 1800 TRACE("(%p %x)\n", this, event); 1801 1802 for(cur=this->calls; cur; cur=cur->next) 1803 cur->event_handler(event, this, cur->index); 1804 }
Wine-dbg>p *this {vtable=0x7dec8968, stdstr=0x7e48b240, state=3406672, except=2118310154, fmtfl=31, prec=0x7bc46749, wide=0x7c, arr=(nil), calls=0x7bc45ae5, loc=0x30000}
Wine-dbg>p *cur {next=0x9a5fc181, index=0x6d830007, event_handler=0x45c71008}
Wine-dbg>si 0x7de1e4b5 ios_base_Callfns+0x91 [/home/focht/projects/wine/wine-git/dlls/msvcp90/ios.c:1803] in msvcp90: call *%edx 1803 cur->event_handler(event, this, cur->index); Wine-dbg>si 0x45c71008: -- no code accessible --
Wine-dbg>x/10x 0x7bc45ae5 0x7bc45ae5 get_freelist_index+0xb: 9a5fc181 6d830007 45c71008 000000fc 0x7bc45af5 get_freelist_index+0x1b: 8b13eb00 848bfc45 fdaa7c81 08453bff 0x7bc45b05 get_freelist_index+0x2b: 45830c73 7d8301fc --- snip ---
It seems that in the stream destruction sequence the event handler(s) are called but have not been setup (init sequence).
The app makes to the following calls to msvcp90 in order to create a file stream and destroy it (names demangeled for better reading):
--- snip --- __thiscall std::basic_ios<char,struct std::char_traits<char>
::basic_ios<char,struct std::char_traits<char> >(void)
(??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ) ... __thiscall std::basic_ostream<char,struct std::char_traits<char>
::basic_ostream<char,struct std::char_traits<char> >(class
std::basic_streambuf<char,struct std::char_traits<char> > *,bool) (??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z) ... __thiscall std::basic_streambuf<char,struct std::char_traits<char>
::basic_streambuf<char,struct std::char_traits<char> >(void)
(??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ) --- snip ---
--- snip --- void __thiscall std::basic_streambuf<char,struct std::char_traits<char>
::setg(char *,char *,char *)
(?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z) ... __thiscall std::basic_streambuf<char,struct std::char_traits<char>
::~basic_streambuf<char,struct std::char_traits<char> >(void)
(??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ) ... __thiscall std::basic_ios<char,struct std::char_traits<char>
::~basic_ios<char,struct std::char_traits<char> >(void)
(??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ) *boom* --- snip ---
$ du -sh NightSkyHD_Win_1217.zip 125M NightSkyHD_Win_1217.zip
$ sha1sum NightSkyHD_Win_1217.zip 01bf4a8f6a0a1fb5c497ee0f229081d21dc9cf5e NightSkyHD_Win_1217.zip
$ wine --version wine-1.5.1
Regards
http://bugs.winehq.org/show_bug.cgi?id=29352
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #7 from Piotr Caban piotr.caban@gmail.com 2012-06-18 05:12:17 CDT --- The crash was caused by 003d:fixme:msvcp90:basic_ostream_char_ctor (0x32fb18 0x32fb1c 0) stub
Please retest.
http://bugs.winehq.org/show_bug.cgi?id=29352
A Wine user RandomAccountName@mail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #39629|0 |1 is obsolete| |
--- Comment #8 from A Wine user RandomAccountName@mail.com 2012-06-20 04:54:20 CDT --- Created attachment 40622 --> http://bugs.winehq.org/attachment.cgi?id=40622 +msvcp90,+relay,+seh,+tid (wine-1.5.6-247-g8041c9b)
It still crashes on startup in wine-1.5.6-247-g8041c9b (unless vcrun2010 is installed).
http://bugs.winehq.org/show_bug.cgi?id=29352
--- Comment #9 from Piotr Caban piotr.caban@gmail.com 2012-06-26 04:30:37 CDT --- There's a stack corruption caused by different virtual functions table in basic_streambuf class in msvcp90 and msvcp100 (some functions have different signatures, there are more functions in msvcp100's vtable).
http://bugs.winehq.org/show_bug.cgi?id=29352
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|NightSky HD crashes on |NightSky HD crashes on |startup |startup (msvcp100)
http://bugs.winehq.org/show_bug.cgi?id=29352
--- Comment #10 from Piotr Caban piotr.caban@gmail.com 2012-08-17 03:55:47 CDT --- This bug should be fixed now. Please retest.
http://bugs.winehq.org/show_bug.cgi?id=29352
A Wine user RandomAccountName@mail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #11 from A Wine user RandomAccountName@mail.com 2012-08-17 15:23:34 CDT --- The game now runs without installing any native DLLs. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=29352
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org 2012-08-31 12:56:54 CDT --- Closing bugs fixed in 1.5.12.
http://bugs.winehq.org/show_bug.cgi?id=29352
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |584a48a380f7980f1cad66bc435 | |640630c850d70