我有一个类似俄罗斯方块游戏的程序。在某些配置中我的碰撞检测器有问题,我想调试它,但游戏没有以“有问题”的状态启动,我想让游戏进入该状态,只有他们才能开始调试。由于碰撞检测器经常运行,我不能在我知道只有在遇到问题状态后运行的地方放置断点,并且调试过程从游戏窗口获得焦点,并且不允许我给出用键盘输入。
使用Visual Studio 2012,有没有办法在一段时间后启动调试器,在开始时它会忽略断点,只有在我告诉它之后,它才会在断点处开始中断? / p>
答案 0 :(得分:5)
是的,您可以通过在不进行调试的情况下启动,然后当您进入所需状态时,使用“调试”菜单选择“附加到进程”。当您看到列表时,请双击您的应用程序。
另一种可能的解决方案是禁用断点,然后当你到达你想要的状态时(你已经开始调试)只需使用Breakpoints Window启用你想要的断点。
答案 1 :(得分:2)
当您看到游戏将进入有问题的配置时,您可以添加按钮或快捷方式并手动触发调试器中断:
System.Diagnostics.Debugger.Break();
从那里在碰撞检测程序中放置另一个断点。
答案 2 :(得分:1)
conditional breakpoint的某些变体应该适合您。困难的部分是决定何时进入,但有条件的BP为您提供了灵活的框架。
答案 3 :(得分:-1)
//assume that frame_counter is incremented at 60 Hz
//adjust this conditional to whatever you want to trigger the breakpoint for real
if(frame_counter > 60 * 60 * 5) { //wait 5 minutes
} // place breakpoint here
根据您的需求进行调整