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 调试器的堆栈内存的最大容量是多少的问题,但它确实提供了解决该问题的方法。
我希望这会对某人有所帮助。
在 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 调试器的堆栈内存的最大容量是多少的问题,但它确实提供了解决该问题的方法。
我希望这会对某人有所帮助。