Home Dashboard Directory Help
Search

x64 Platform Bug? Call Stack doesn't show. by minoos


Status: 

Closed
 as Fixed Help for as Fixed


1
0
Sign in
to vote
Type: Bug
ID: 776314
Opened: 1/11/2013 2:01:05 AM
Access Restriction: Public
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description

Sorry, I can't write english, well.

I use Visual Studio 2010. But this bug occured VS2012, too.

@Configuration / Platform : Debug / x64 ( release or x86 is good. )

code is very simple.

If Stack Size is larger than "530000", Debugger do not show "Call Stack".

////////////////////////

void func()
{
    char s[800000]; // <-- debug step to here. occured @ 530000bytes~
    s[0]=0;
    s[0]++;
    printf("%d\n", s[0]);
}

int _tmain(int argc, _TCHAR* argv[])
{
    int a = 0;
    a++;

    func();

    return 0;
}
Details
Sign in to post a comment.
Posted by Microsoft on 2/11/2013 at 8:54 PM
We have identified and fixed the problem in our stack unwinding engine. The fix will definitely be included in our next major release. Meanwhile we are considering whether to include this fix in our upcoming VS 2012 VSUpdate.

Thank you very much for taking the time to report this problem to us.

YongKang Zhu
--
VC++ CodeGen and Tools

Posted by Microsoft on 1/16/2013 at 1:43 AM
Thank you for submitting feedback on Visual Studio and .NET Framework. Your issue has been routed to the appropriate VS development team for investigation. We will contact you if we require any additional information.
Posted by minoos on 1/14/2013 at 12:28 AM
Simplest sample code is here,

//////

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    char s[800000];

    s[0] = 0;
}

///////////

and, just click F11 ( Step Into )... call stack contents is empty. ( 64bit debug )
Posted by minoos on 1/14/2013 at 12:23 AM
in disaseembly window,

void func()
{
000000013F903040 push        rdi
000000013F903042 mov         eax,0C3550h
000000013F903047 call        __chkstk (13F901260h)
000000013F90304C sub         rsp,rax <-- after step here, call stack is clear.
000000013F90304F mov         rdi,rsp
000000013F903052 mov         ecx,30D54h
000000013F903057 mov         eax,0CCCCCCCCh
000000013F90305C rep stos    dword ptr [rdi]
000000013F90305E mov         rax,qword ptr [__security_cookie (13F909028h)]
000000013F903065 xor         rax,rsp
000000013F903068 mov         qword ptr [rsp+0C3540h],rax
Posted by minoos on 1/14/2013 at 12:21 AM
Hi minoos, thanks for submitting feedback on Visual Studio and .Net Framework. Do you mean you can't open the Call Stack window?
>> No, Call Stack Window is Opened. But, Window Content is empty. Like as call stack is broken.

at 32bit debug, call stack is >

    TestHeap3.exe!wmain(int argc, wchar_t * * argv) line 17    C++
    TestHeap3.exe!__tmainCRTStartup() line 552 + 0x19 bytes    C
    TestHeap3.exe!wmainCRTStartup() line 371    C
    kernel32.dll!765533aa()     

but at 64bit debug, call stack is empty.
and main window represent "No symbols are loaded for any call stack frame. The source code cannot be displayed."

Posted by Microsoft on 1/13/2013 at 10:08 PM
Hi minoos, thanks for submitting feedback on Visual Studio and .Net Framework. Do you mean you can't open the Call Stack window?
Posted by Microsoft on 1/11/2013 at 2:50 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.