java - 在eclipse中调试多个线程

标签 java eclipse multithreading debugging

在我正在调试的方法中,我正在生成一个新线程。我需要调试这个新线程而不是父线程的执行。如何在 Eclipse 中做到这一点?

最佳答案

除了 Shamit Verma 的回答:

在处理调试多线程 Java 应用程序时,最好不要使用仅暂停设置断点的线程的标准断点。在应用程序中定义标准断点只会中断相关线程。其他线程仍将运行。在eclipse调试器中,如果其他线程已经启动,由于某种原因会导致调试器跳过断点。

调试Java的解决方案:

在所需线程中定义断点(我期望的@Run() 方法..),在断点处右键-> 断点属性。

在断点属性对话框中勾选“Suspend VM”而不是“Suspend thread”。

如果您这样做,您的整个 VM 将在到达断点时暂停。

在 C/C++ CDT 中,使用 set scheduler-locking on :

正如@Employed Russian 在answer-to-other-question 中所说的那样,GDB命令:

set scheduler-locking on 

将导致其他 C/C++ 线程保持挂起,同时允许当前线程单步执行。此命令可以在 Eclipse/CDT Debug 中执行,方法是暂停程序执行并打开“调试器控制台”透视图并键入:set scheduler-locking on 稍后可以通过以下命令恢复正常:set调度程序锁定关闭

有关调度程序锁定非停止模式的更多信息,请参阅 GDB 文档,该模式允许其他线程在停止单个线程的同时运行。

关于java - 在eclipse中调试多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375538/

相关文章:

java - 如何在两个 tomcat 服务器之间通信/连接

eclipse - Java/Eclipse - 指定当前方法名称的宏?

c# - 如何最好地处置因 AutoResetEvent.WaitOne() 而处于休眠状态的线程

java - 使用 Runnable VS 的单个实例创建多个线程。每个线程都有单独的实例

java - Android Studio 在更改布局后使用 setOnTouchListener

java - 自定义eclipse View 和正在运行的程序之间的通信?

java - 我收到错误 - 线程 "main"java.lang.NullPointerException 中的异常 java.lang.StringBuffer.<init>(未知来源)

java - 复合模式的定义

eclipse - 如何在eclipse中更改Maven本地存储库

multithreading - 我如何将 worker 返回到 Go 中的 worker 池