在eclipse中debugging多个线程
在我正在debugging的方法中,我产生了一个新的线程。 我需要debugging这个新线程的执行,而不是父线程。 我如何在日食中做到这一点?
在新线程的“运行”方法上放置一个断点。 一旦线程启动,这将暂停执行。
除了Shamit Verma的回答:
在处理debuggingmultithreading应用程序时,最好不要使用标准断点来暂停设置断点的线程。 在你的应用程序中定义一个标准的断点,只会破坏相关的线程。 其他线程将仍然运行。 在eclipsedebugging器出于某种原因,如果其他线程已经启动,将导致debugging器跳过断点。
解决scheme:
在期望的线程中定义一个断点(我期望的@ Run()方法),右键单击断点 – >断点属性。
在断点属性对话框中勾选“暂停虚拟机”而不是“挂起线程”。
如果你这样做,你的整个虚拟机将被挂起,以防到达断点。
除了Erik Kaju的回答。 如果你正在debuggingCDT(这也可能适用于Java,那么我不确定)
- 在run()方法(或其等价物)上放置一个断点。 或者您确定需要的线程和不需要的线程(将被filter移除的线程)都运行的任何点。
- 开始debugging会话。
- 当运行中的断点被击中时,你可以到另一个断点,如果断点被禁用,则启用该断点。 然后右键单击断点 – >转到filter,现在可以select希望断点保持启用状态的线程,并且可以取消选中其余线程。 所以这个断点只会针对特定的线程。
缺点是这个过程必须重复每个debugging会话。 如果任何人都可以提供捷径,那么这将是很好的。
在你的eclipsedebugging窗口中,你可以跳转到所需的工作者线程编号,并继续执行(F6)顺序浏览。