仅使用Visual Studio在C#中的某个时间点开始调试

时间:2013-03-26 21:44:45

标签: c# visual-studio debugging

我有一个类似俄罗斯方块游戏的程序。在某些配置中我的碰撞检测器有问题,我想调试它,但游戏没有以“有问题”的状态启动,我想让游戏进入该状态,只有他们才能开始调试。由于碰撞检测器经常运行,我不能在我知道只有在遇到问题状态后运行的地方放置断点,并且调试过程从游戏窗口获得焦点,并且不允许我给出用键盘输入。

使用Visual Studio 2012,有没有办法在一段时间后启动调试器,在开始时它会忽略断点,只有在我告诉它之后,它才会在断点处开始中断? / p>

4 个答案:

答案 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

根据您的需求进行调整