• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. Loom
  4. Debugger Support

Page History

Versions Compared

Old Version 44

changes.mady.by.user Alan Bateman

Saved on Feb 20, 2022

compared with

New Version 45

changes.mady.by.user Chris Plummer

Saved on Mar 01, 2022

  • Previous Change: Difference between versions 43 and 44
  • Next Change: Difference between versions 45 and 46
  • View Page History

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • JDI ThreadReference.stop
  • JDI ThreadReference.popFrame
  • JDI ThreadReference.forceEarlyReturn
  • JDI StackFrame.setValue() has limitted support. It can be used on the topmost frame when suspended due to certain events, such as breakpoint and single step. Details are still being refined.

JDWP agent options

As a temporary solution to allow existing debuggers work with virtual threads, the JDWP agent will track virtual threads so they can be enumerated for debuggers that want to enumerate all virtual threads. The options that control this behavior are:

Option Name and ValueDescriptionDefault
enumeratevthreads=y|n   thread lists include virtual threadsn
notifyvthreads=y|nsend THREAD_START/END events for all virtual threads
y
  • enumeratevthreads control whether or not virtual threads are included in the list of threads returned by JDWP VirtualThread.GetAllThreads and ThreadGroupReference.Children commands. This flag can be turned on for compatibility purposes. This flag will eventually go away and the debug agent will operate as if it was set to 'n'.
  • [notifyvthreads has been removed. To disable THREAD_START and THREAD_END events for vthreads, use the PlatformThreadsOnly filter as described in this section] notifyvthreads controls whether or not THREAD_START and THREAD_END events are sent for virtual threads. The default is to send them. The purpose is to allow debugger writers to use notifyvthreads=n to see how the debugger works without getting these events. This is meant as a short term convenience flag rather than having to set the PlatformThreadsOnly filter as described above. Once support for notifyvthreads=n is gone, if debuggers don't want THREAD_START and THREAD_END events for virtual threads, they will need to set the PlatformThreadsOnly filter. When using the PlatformThreadsOnly filter, the debugger can learn about virtual threads when events are delivered for them, such as a BreakpointEvent. Since no THREAD_END event will be sent for the virtual thread, the debugger will then need to figure out how to "forget" about the virtual threads it is tracking when they have terminated. This could possibly be done with a ThreadDeathRequest that filters on the virtual thread. This would need to be done for each virtual thread being tracked by the debugger. Please note that notifyvthreads=y will not override any PlatformThreadsOnly filter that is in place.

...

Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 185, "requestCorrelationId": "6fb5aa71946da4f4"}