Visual Studio 2012仅发布错误

时间:2013-04-29 19:49:45

标签: c++ debugging visual-studio-2012 release

这里有很多错误,但我确定它们都是链接的,所以首先我会在位置(通常接近0x00000000)获取Access违规读取位置异常 但是我只在发布中获得这些异常,而不是在调试中,即使我设置调试也是如此。我还发现了错误发生的地方,但是当我跳过它时,它会进入一个完整的无关函数,该函数不会在该行或该行代码中的任何函数中调用。但是当调用类似的代码时,它仍然会转到这个不相关的函数但不会失败。这一切只发生在发布版本中。我知道哪一段代码导致了错误,就好像我把它评论一样好了。同样在发布的监视窗口中,所有数字在大多数情况下都是错误的,这从来都不是问题,但它也可以帮助添加一些代码,将变量值输出到文件,变量都很好,指针是明智的,但是当异常发生时,它总是说它们的0x00000020,但是当我查看日志时它们很好。这是32位,但在c ++的64位Windows 7上。请任何帮助都会好!

1 个答案:

答案 0 :(得分:0)

Visual Studio的调试器将使程序使用可以隐藏未初始化内存的调试堆,如果使用“启动调试”选项启动程序,则在发布或调试中。您可以尝试在没有附加调试器的情况下运行在Debug配置中构建的程序,然后使用调试菜单中的Attach to Process ...选项附加到您的可执行文件。

如果这没有帮助,我建议使用windbg来调试您的程序。有关windbg入门的帮助,请查看此question上的答案。

一旦配置了windbg并设置了符号路径,一旦程序崩溃,您可以使用“!analyze -v”选项自动获取有关崩溃的大量信息。