Releases: Tonic-Box/JStudio
Releases · Tonic-Box/JStudio
v21.0
New Features
- Run main() classes from inside JStudio now with automatic attach for live analysis
- Add Live Java Scratch Pad: eval arbitrary Java in the attached JVM
- Add Run: launch the loaded app's main() in a separate JVM
- Dead member removal
- Add JFR analysis window: visualize captured recordings in-app
- Live profiler side tab
House keeping
- Overhauled plugin API surface
- Moved JStudio console to a bottom tab
- Fixed some theming issues
- Cleaned up codebase
v20.0
v19.0
v18.0
Add JStudio Live: attach to a running JVM
New :live-agent and :live-client subprojects
- Attach to a running JVM and browse its loaded classes
- Patch & Continue: recompile the current class and live-redefine it, grafting only the edited method bodies so the member set is preserved
- Capture runtime-defined classes into the project
- Heap instances, static fields, and thread/deadlock views
v17.0
- Add Dual view: linked bytecode/source panes
- Clickable "N usages" lenses on class, method, and field declarations; open Find Usages (View ▸ Usage Counts toggle)
- Shared XrefQueryService (one xref build + filter for lenses and Find Usages); class usages scoped to type references, not member accesses
- Navigate/locate declarations via decompiler spans; regex kept only as Hide-Annotations fallback
- Find Usages selection skips string/char literals and prefers the real member-access/call token
- Recompiling a class invalidates the xref database
v16.0
v15.0
- Fixed a few bugs in decompiler with reconstruction/recovery of VARARGS
- Migrated Query engine over to YABR
- Extract non-UI logic out of com.tonic.ui into sibling packages (util/model/event/service/deobfuscation/script/simulation); cli/plugin now depend on those, not ui
- Find Usages now jumps to the exact call site in source and selects the referenced name
- Bytecode debugger: tabbed Bytecode/Source view; source tab tracks the executing line and supports breakpoints (gutter click or context menu)
- Fix breakpoints binding to the wrong method when viewing callees in recursive mode