Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在多线程应用程序中设置断点_Multithreading_Breakpoints - Fatal编程技术网

Multithreading 在多线程应用程序中设置断点

Multithreading 在多线程应用程序中设置断点,multithreading,breakpoints,Multithreading,Breakpoints,如果我为多线程应用程序设置断点,会发生什么情况 它会停止所有的线程,仅仅是中断的线程,还是整个程序只是崩溃 如果可能的话,我会只停止一个线程,还是会把我的应用程序搞砸 如果我不能中断一个多线程应用程序,我可以使用哪些调试技术?它会停止所有线程 通常不可能只停止一个线程。有关使用GDB调试线程的更多信息,请参阅手册的第页。由于您没有使用特定的语言/平台标记问题,因此我将给出与Java相关的答案 在大多数IDE中,您可以在断点上设置属性,特别是条件属性。因此,如果您知道线程的名称,可以执行以下操作:

如果我为多线程应用程序设置断点,会发生什么情况

它会停止所有的线程,仅仅是中断的线程,还是整个程序只是崩溃

如果可能的话,我会只停止一个线程,还是会把我的应用程序搞砸

如果我不能中断一个多线程应用程序,我可以使用哪些调试技术?

它会停止所有线程


通常不可能只停止一个线程。有关使用GDB调试线程的更多信息,请参阅手册的第页。

由于您没有使用特定的语言/平台标记问题,因此我将给出与Java相关的答案

在大多数IDE中,您可以在断点上设置属性,特别是条件属性。因此,如果您知道线程的名称,可以执行以下操作:

“ThreadName”.equals(Thread.currentThread().getName())


…以及使用同一类的所有其他线程(您在其中设置断点)将不受阻碍地运行。

JAVA:根据个人经验,您可以通过停止所有线程或单个线程来调试多线程应用程序。这很可能取决于您使用的IDE以及您连接到的应用程序,但对我来说,它是:

  • Eclipse以调试模式连接到在jpda中运行的Tomcat服务器
  • 在代码中放置一个断点,转到Eclipse的调试透视图(有时它会暂停,但不会切换透视图)

  • 在“断点”窗口中,您将看到断点列表。您可以右键单击每个对象并在其上设置属性。。。如果要停止一个断点上的所有线程,请单击SuspendVM单选按钮。如果只想停止单个线程,请单击“挂起线程”


如果使用单线程停止选项,我不确定此时您是否能够选择要暂停的线程。在Suspend VM中,您可以查看调试窗格并查看您的线程。。。向下滚动,您可以在线程之间跳转(守护进程线程10与守护进程线程9,诸如此类)

您可以重新启动所有线程,或者在某些情况下只重新启动一个线程。在intellij中,您至少还可以选中“仅停止此线程,而不是全部”选项