断点在全屏模式下挂起基于directx的程序

Break point hangs DirectX-based program in full screen mode

本文关键字:directx 程序 挂起 模式 断点      更新时间:2023-10-16

我开始制作一款游戏,我有一个全局类,读取csv文件,加载两个直接x曲面,并创建背景。

表面是瓦片,另一个是由瓦片创建的背景。背景表面没有工作,安装后我检查它,如果为空,出现一个消息框。它总是显示消息框。

我尝试设置断点,看看是否正确地从csv文件中读取值,但程序不会运行。任务栏中出现一个对话框,程序全屏运行,但屏幕变黑,不显示消息框,只能通过ctrl,alt,del来停止。

无论我把断点放在哪里,即使它在不同的源文件中也会发生这种情况。有谁知道为什么吗?

p。它不是一个多线程应用程序。

编辑:

我使用的是visual studio 2005和direct x 9.c

使用directshow,它可以在全屏下调试:如果你真的必须这样做,我建议使用第二个屏幕(这样,你可以在屏幕1上调试,而你的程序在屏幕2上全屏运行)。

如果这不起作用,你必须使用远程调试(即在一台计算机上运行程序,然后在另一台计算机上调试)。

最有可能发生的情况是,您的调试点被触发,但您的屏幕被directshow保持,因此无法显示可视化。因此,您的程序实际上被可视化阻塞,它不回答任何问题(因为事件循环被调试器阻塞)

按照顺序,我将:

  • 在窗口模式下运行
  • 在双屏幕中运行,调试器在其他屏幕上运行
  • 尝试设置远程调试(祝好运)
  • 也许可以使用旧的好方法来调试printf/traces (log4cpp等)

在visual studio中,如果您的项目没有配置为调试模式(而是配置为发布模式),您将无法调试,因此您设置的任何断点都将被忽略。这可能就是问题所在

强制它在窗口模式下,你可以修改或挂钩应用程序