-1

这里发生了许多错误,但我确定它们都是链接的,所以首先我在位置(通常在 0x00000000 附近)得到访问冲突读取位置异常,但我只在发布时得到这些异常,而不是在调试中,即使我设置调试这样做。我还发现了错误发生的位置,但是当我跨步时,它进入了一个完全不相关的函数,该函数未在该行或该代码行中的任何函数中调用。但是当调用类似的代码时,它仍然会转到这个不相关的函数,但不会失败。这一切都只发生在发布版本中。我知道哪段代码导致了错误,就好像我把它注释掉一样。同样在发布的监视窗口中,大多数时候所有数字都是错误的,这从来都不是问题,但它还可以帮助添加一些代码以将变量的值输出到文件并且变量都很好,指针是明智的,但是当异常发生时它总是说它们的 0x00000020 但是当我看日志他们很好。这是 32 位的,但在 c++ 中的 64 位 windows 7 上。请任何帮助都会很好!

4

1 回答 1

0

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

如果这没有帮助,我建议使用windbg来调试您的程序。如需帮助开始使用 windbg,请查看有关此问题的答案。

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

于 2013-04-30T00:57:00.680 回答