Visual Studio 调试最大缓冲区大小

Visual Studio debug maximum buffer size

在 visual studio (2010) 中调试我的项目时,一旦我进入我的文件之一,就会收到消息“没有可用的源”。该文件现在只是一个具有一个功能的测试文件:

void foo()
{
    float testbuf[200000] = {0};
}

如果我分配一个较小的缓冲区,调试器将正常进入文件。 在我的调试视图中,我的 "call stack location" 是空的,并且有 "no disassembly available".

在我看来,visual studio 调试器可以处理的最大数据量或朝这个方向的东西。

有人可以告诉我这是否是问题所在以及我该如何解决。也许一些 Visual Studio 设置可以帮助我?

我找到了避免该问题的方法。 如果我通过 malloc-ing 相同的大缓冲区创建缓冲区 "dynamically",那么 Visual Studio 调试我的源文件没有问题。 代码示例:

void foo()
{
    float *testbuf;
    testbuf = (float*) malloc(200000*sizeof(float)); // "dynamic" malloc
    memset(testbuf, 0, 200000*sizeof(float)); // Make sure buffer is empty.
    // Code (irrelevant to example)
    free(testbuf);
}

所以这并没有回答 visual studio 调试器的堆栈内存的最大容量是多少的问题,但它确实提供了解决该问题的方法。

我希望这会对某人有所帮助。