我正在尝试调试用 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 专家,但我过去曾大量使用它进行调试,而且我从未见过这种行为。
关于如何进行的任何想法?