【问题标题】:Program breaks when not running with debugger attached未在附加调试器的情况下运行时程序中断
【发布时间】:2011-04-30 20:17:20
【问题描述】:

我正在开发一个 2D 引擎,它是用 C++ 编写的,我在 Windows 7 64 位上使用 Microsoft Visual Studio 2010。

我使用 OpenGL 进行硬件加速,现在正在尝试使用帧缓冲区将纹理用作画布。 (例如允许用户在屏幕上绘画)

现在这个帧缓冲区可以正常工作了,只要我启动带有调试器的程序 (F5)

如果我从 IDE 外部启动程序,或者在没有调试器 (CTRL+F5) 的情况下启动程序,我无法绘制纹理,但每帧都会出现闪烁和 OpenGL 堆栈下溢错误。

  • 我真的不知道从哪里开始寻找问题,您能帮帮我吗?

【问题讨论】:

  • 你的程序是多线程的吗?
  • 首先检查您是否将所有 .dll 与 .exe 放在同一文件夹中。如果有,请尝试更改项目属性 (alt+F7) 配置属性-> c/c++ -> 代码生成和在右侧菜单中将运行时库更改为 /MTd

标签: c++ visual-studio debugging opengl


【解决方案1】:

我不能确定,但​​可能是以下几种情况之一:

  • 调试器(有时)初始化为 0 的未初始化变量
  • 由于时间不同而未显示的竞争条件

【讨论】:

  • +1 表示未初始化的变量,尤其是堆分配的变量。从调试器启动时,您会获得 Windows 调试堆,它会使用特定模式预先填充堆分配的内存,而当“正常”凝视时,您会获得其中包含任何内容的页面(通常在程序启动时为零)。查看正在发生的事情的一个可行技巧是在程序启动后附加调试器。
猜你喜欢
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多