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

时间:2011-04-28 12:08:00

标签: c++ visual-studio debugging directx breakpoints

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

表面是图块表,另一个是从图块创建的背景。滴注后,背景表面不起作用,我检查它,如果为null,则会出现一个消息框。它始终显示消息框。

我尝试设置断点,以查看是否在csv文件的corectly中读取了值,但程序将无法运行。任务栏中出现一个框,程序全屏显示但屏幕变黑并且不显示消息框,只能通过ctrl,alt,del停止。

即使是在不同的源文件中,我也会把断点放在这里。有谁知道为什么?

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

编辑:

我正在使用visual studio 2005并指向x 9.c

3 个答案:

答案 0 :(得分:3)

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

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

最有可能的情况是,您的调试点被触发,但您的屏幕由directshow保留,因此无法显示视觉效果。因此,您的程序实际上被视觉阻止,它不会回答任何事情(因为事件循环被调试器阻止)

按顺序,我会:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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