VS2010调试器中没有调用堆栈

Pup*_*ppy 5 c++ debugging visual-studio-2010 visual-studio

我有一个加载DLL的应用程序,随后崩溃.我将IDE的工作目录修改为解决方案构建目录,以便我可以在构建的DLL上运行调试器,该DLL是从此解决方案中的另一个项目构建的.当应用程序获得访问冲突时,我可以看到当前函数,但没有调用堆栈,并且没有任何本地人会评估.我已经检查过这个目录中有调试器符号,它都是在调试模式下构建的.可能是调试器失败的原因是什么?

编辑:如果我放置一个断点,那么调试器工作正常 - 当然,这仍然没有告诉我为什么应用程序崩溃,但我得到一个调用堆栈,所有符号将愉快地评估.

Jar*_*Par 4

让调试器在遇到断点时工作,而在本机代码中发生访问冲突后中断时失败,这通常表明访问冲突发生在堆栈损坏之前或伴随着堆栈损坏。

调试器依赖于正确设置堆栈中的某些值,以便构建正确的堆栈视图并访问局部变量。如果此数据被损坏,则可能会阻止显示本地数据并生成准确的堆栈图片。

如果您在访问冲突之前命中断点,堆栈仍然完好无损,调试器可以自由查看信息。