0

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

关于如何进行的任何想法?

4

0 回答 0