Java调试器:是否可以选择性地挂起线程?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java调试器:是否可以选择性地挂起线程?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3276字,纯文字阅读大概需要5分钟。
内容图文
![Java调试器:是否可以选择性地挂起线程?](/upload/InfoBanner/zyjiaocheng/808/2d58ffd32b7843c9b3c89c46fd14759e.jpg)
在我过去作为C/C++程序员的生活中,它可能在某些平台上和调试器组合以选择性地挂起线程.在点击断点之后,可以发出命令(或点击GUI中的内容)来冻结/解冻(暂停/唤醒)线程.在进一步的step / next / run / continue命令时,挂起的线程不会执行任何指令.
今天可以使用任何JVM或Java IDE吗?我使用IntelliJ而我看不到该功能,也无法通过Google找到任何信息.
澄清:
>我不是在询问断点的线程策略,例如,挂起当前线程或所有线程.我知道JVM调试器功能.
>开发环境是vanilla:我使用IntelliJ Java IDE,我可以访问相关的源代码.
最后,我意识到“Java调试器”是一个有点模糊的术语. AFAIK,Sun发布了一种调试线程格式,调试器使用该格式与JVM进行通信.也许每个JVM(IBM vs Sun vs IcedTea vs ???)支持不同的调试功能,但我只熟悉Sun / Oracle JVM.
解决方法:
你绝对可以在jdb中挂起一个线程(见下文).我喜欢IntelliJ作为Java编辑器.另一方面,它的调试器并不可怕,但很接近.
Initializing jdb ...
> run
Nothing suspended.
> threads
Group system:
(java.lang.ref.Reference$ReferenceHandler)0x141 Reference Handler cond. waiting
(java.lang.ref.Finalizer$FinalizerThread)0x140 Finalizer cond. waiting
(java.lang.Thread)0x13f Signal Dispatcher running
(java.lang.Thread)0x401 Java2D Disposer cond. waiting
(java.lang.Thread)0x804 TimerQueue cond. waiting
Group main:
(java.lang.Thread)0x322 AWT-AppKit running
(java.lang.Thread)0x323 AWT-Shutdown cond. waiting
(java.awt.EventDispatchThread)0x5ec AWT-EventQueue-0 cond. waiting
(java.util.TimerThread)0x750 Timer-0 cond. waiting
(java.lang.Thread)0x7fd DestroyJavaVM running
> suspend 0x5ec
> threads
Group system:
(java.lang.ref.Reference$ReferenceHandler)0x141 Reference Handler cond. waiting
(java.lang.ref.Finalizer$FinalizerThread)0x140 Finalizer cond. waiting
(java.lang.Thread)0x13f Signal Dispatcher running
(java.lang.Thread)0x401 Java2D Disposer cond. waiting
(java.lang.Thread)0x804 TimerQueue cond. waiting
Group main:
(java.lang.Thread)0x322 AWT-AppKit running
(java.lang.Thread)0x323 AWT-Shutdown cond. waiting
(java.awt.EventDispatchThread)0x5ec AWT-EventQueue-0 waiting in a monitor
(java.util.TimerThread)0x750 Timer-0 cond. waiting
(java.lang.Thread)0x7fd DestroyJavaVM running
> where 0x5ec
[1] java.lang.Object.wait (native method)
[2] java.lang.Object.wait (Object.java:485)
[3] java.awt.EventQueue.getNextEvent (EventQueue.java:558)
[4] java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:263)
[5] java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:211)
[6] java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:201)
[7] java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:196)
[8] java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:188)
[9] java.awt.EventDispatchThread.run (EventDispatchThread.java:122)
AWT-EventQueue-0[1] where 0x322
Current thread isn't suspended.
AWT-AppKit[1] resume 0x5ec
AWT-AppKit[1] where 0x5ec
Current thread isn't suspended.
AWT-EventQueue-0[1]
内容总结
以上是互联网集市为您收集整理的Java调试器:是否可以选择性地挂起线程?全部内容,希望文章能够帮你解决Java调试器:是否可以选择性地挂起线程?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。