断点多线程应用程序

Ske*_*ith 8 multithreading breakpoints

如果我断点多线程应用程序会发生什么.

它是否会停止所有线程,只是突破的线程或整个程序崩溃?

如果有可能我想停止一个线程或者这会弄乱我的应用程序?

如果我不能突破一个多胎面应用程序,我可以使用哪些调试技术?

小智 6

JAVA:就个人经验而言,您可以通过停止所有线程或单个线程来调试多线程应用程序.它很可能取决于您使用的IDE,以及您要连接的应用程序,但对我而言:

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

  • 在断点窗口中,您将看到断点列表.您可以右键单击并设置属性...如果要在一个断点上停止所有线程,请单击"暂停VM"单选按钮.如果您只想停止单个线程,请单击"挂起线程".

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


Jam*_*mes 1

它停止所有线程。

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