我正在尝试调试用C ++编写的程序(.exe)。该程序是一个控制台应用程序,是面向数学的模拟,没有GUI或接口代码。我试图通过右键单击VS的解决方案资源管理器中的可执行文件并选择“步入新实例”,在Win 7(64位)上的Visual Studio 2008中编译此程序的调试会话。但是,在执行第一行代码之前,Visual Studio会在sim.exe中报告“0x00000001401b3937处的未处理异常:0xC00000FD:堆栈溢出”。这是前几行代码的片段
int_T main(int_T argc, const char_T *argv[])
{
SimData thisSim;
int InputFlag = 0;
调试器箭头指向第一个尖括号。
以下是dissabembly视图的快照:
int_T main(int_T argc, const char_T *argv[]) { 0000000140141930 mov qword ptr [rsp+10h],rdx 0000000140141935 mov dword ptr [rsp+8],ecx 0000000140141939 push rsi 000000014014193A push rdi 000000014014193B mov eax,1120C8h 0000000140141940 call __chkstk (1401B3900h) 0000000140141945 sub rsp,rax <------DEBUGGER IS STOPPED HERE 0000000140141948 mov rax,qword ptr [__security_cookie (1401F7050h)] 000000014014194F xor rax,rsp 0000000140141952 mov qword ptr [rsp+1120B0h],rax /////////////////////////////////////////////////////////////////////////// /* Initialize Instance of SimData */ SimData thisSim; int InputFlag = 0; 000000014014195A mov dword ptr [rsp+20h],0
我不是Visual Studio的专家,但我过去使用了相当数量的调试,我从未见过这种行为。
有关如何进行的任何想法?