在Visual Studio(我的情况下是2005)中调试程序时,有一件事让我感到恼火的是,当我使用"跳过"(通过按下F10)执行到下一行代码时,我经常最终到达特定的代码行一个完全不同于我所看到的线程.这意味着我所做的所有背景都丢失了.
我该如何解决这个问题?
如果在Visual Studio的更高版本中可以这样做,我也想听听它.
在下一行代码中设置一个断点,它有一个条件只能为这个线程打破,这不是我正在寻找的答案,因为这对我来说太有用了:)
c++ debugging multithreading visual-studio-2005 visual-studio
我希望能够在调试时只跟踪一个线程的执行.我使用线程池,因此调试器不断在线程之间切换,这使得调试非常不舒服.
读:
我得到一个解决方案,它是条件断点(基于线程的名称).但是,我不能说"线程#3"总是处理有趣的情况,所以我必须改变每次执行的条件.太多的工作.
另一个解决方案是使用冻结/解冻功能只使我有趣的线程运行.但是,这会使某些信息不可用,因为所有线程都已暂停.
我现在使用的是让程序运行直到我到达断点,我肯定会在好的线程中.然后我暂停线程池的所有其他线程并尝试恢复执行.如果程序似乎卡住了,我暂停,解冻当前线程.
理想的解决方案是找到正确的线程,标记它然后对Visual Studio说:" 只有当前线程被标记时才会中断 ".
这甚至可能吗?
我正在制作一个应用程序,它会向Visual Studio发送一步一步的按键,使其能够截取部分自己的代码逐行执行的截图.
但是当你在你的代码中遇到一个断点时,似乎所有线程都会停止,即使是那些没有达到断点的线程.有没有办法解决?当我遇到断点时,有没有办法让Visual Studio保持其他线程运行?或者我是否必须采取单独的流程?
编辑:澄清一下,当断点被击中时,我需要只在遇到断点的线程上执行停止.我不希望断点仅在被某个线程命中时激活.换句话说,我需要让一部分程序继续执行,同时一个线程在调试器的断点处停止.
c# multithreading breakpoints visual-studio visual-studio-2012