[Bug 37954] Test application using old MSVC++ iostream library crashes on startup ('msvcirt.??0ostrstream@@QAE at XZ' takes one argument)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Jan 23 13:52:33 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=37954

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
          Component|-unknown                    |msvcirt
            Summary|Unhandled exception: page   |Test application using old
                   |fault on write access to    |MSVC++ iostream library
                   |0x0cf00052 in 32-bit code   |crashes on startup
                   |(0x00520d30)                |('msvcirt.??0ostrstream@@QA
                   |                            |E at XZ' takes one argument)
     Ever confirmed|0                           |1

--- Comment #1 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.

Next time please put up a more meaningful summary.

Relevant part of trace log:

--- snip ---
...
0023:Call msvcirt.??0ostrstream@@QAE at XZ(0033fd8c) ret=0040100f
0023:fixme:msvcirt:MSVCIRT_ostrstream_sl_void (0x33fd8c) stub
0023:Ret  msvcirt.??0ostrstream@@QAE at XZ() retval=0033fd8c ret=0040100f
0023:Call msvcirt.??1ostrstream@@UAE at XZ(0033fd90) ret=00401019
0023:fixme:msvcirt:MSVCIRT_ostrstream_sl_void (0x33fd90) stub
0023:Ret  msvcirt.??1ostrstream@@UAE at XZ() retval=0033fd90 ret=00401019
0023:Call msvcirt.??1ios@@UAE at XZ(0033fd90) ret=00401023
0023:fixme:msvcirt:MSVCIRT_ios_sl_void (0x33fd90) stub
0023:Ret  msvcirt.??1ios@@UAE at XZ() retval=0033fd90 ret=00401023
0023:trace:seh:raise_exception code=c0000005 flags=0 addr=0x405000 ip=00405000
tid=0023
0023:trace:seh:raise_exception  info[0]=00000001
0023:trace:seh:raise_exception  info[1]=00000000
0023:trace:seh:raise_exception  eax=00000000 ebx=7b8bf000 ecx=0033fd90
edx=7bceec48 esi=0033feb0 edi=00000000
0023:trace:seh:raise_exception  ebp=0033fe20 esp=0033fde4 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010212
...
Backtrace:
=>0 0x00405000 in test1 (+0x5000) (0x0033fe20)
  1 0x7b864ff8 call_process_entry+0xb() in kernel32 (0x0033fe38) 
...
--- snip ---

The stack gets imbalanced by the first ctor stub, resulting in later crash when
leaving 'main'.

Code of test app:

--- snip ---
Wine-dbg>disas

0x00401000: subl    $88,%esp
0x00401003: leal    0x0(%esp),%ecx               ; this
0x00401007: pushl   $0x1                         ; unknown arg to ctor?
0x00401009: call    *0x404090 -> 0x7eff37d4
__thiscall_MSVCIRT_ostrstream_sl_void in msvcirt
0x0040100f: leal    0x8(%esp),%ecx
0x00401013: call    *0x404094 -> 0x7eff37d4
__thiscall_MSVCIRT_ostrstream_sl_void in msvcirt
0x00401019: leal    0x8(%esp),%ecx
0x0040101d: call    *0x404098 -> 0x7eff3758 __thiscall_MSVCIRT_ios_sl_void in
msvcirt
0x00401023: xorl    %eax,%eax
0x00401025: addl    $88,%esp
0x00401028: ret
--- snip --

It seems the MSVC++ 6 compiler generated code which passes an additional
argument to 'ostrstream::ostrstream()' ctor.

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list