vscode-java-debug/CHANGELOG.md

45 KiB

Change Log

All notable changes to the "vscode-java-debugger" extension will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.58.1 - 2024-10-31

Added

  • The launch config envFile now supports an array of env files. #1505. Thanks to Ed Hillmann for contribution.

Fixed

  • Fail to debug with java 23 - Unrecognized option: -Xnoagent. java-debug#561.

0.58.0 - 2024-06-27

Fixed

  • Latest Gradle Language Support extension cause hot code replace to fail. #1402.
  • Hot Code Replace returns "Cannot find any changed classes for hot replace!" message. #1481.

0.57.0 - 2024-03-26

Added

  • Add support for running Java 21 "Unnamed classes and Instance main method". #1444.

0.56.2 - 2024-02-28

Changed

  • Move 'Run/Debug Java' menus to the same group as the other Java menus within File Explorer. #1447.

0.56.1 - 2024-02-19

Fixed

  • Fix the java.lang.NoClassDefFoundError when triggering code completion in DEBUG CONSOLE. See java-debug#534.

0.56.0 - 2024-01-31

Fixed

  • Breakpoint doesn't work on lambdas which returns a generic type. See java-debug#498, #1413 and #1414.

  • Breakpoint with inline lambdas work only with last one. See #1410.

  • StepInto method target doesn't work if the method is part of wrapped expression. See java-debug#519.

    Thanks to Gayan Perera for contribution in fixing multiple bugs.

0.55.0 - 2023-11-01

Changed

  • Don't duplicate build reference projects when building a Gradle project managed by Build Server. java-debug#511.

Fixed

  • Cannot find Java process when using "Attach by Process ID". #1388. Thanks to owl-from-hogvarts for contribution.

0.54.0 - 2023-08-29

Added

  • Code completion in DEBUG CONSOLE now adds fully qualified names for unimported classes. See #1246.
  • Code completion in DEBUG CONSOLE now displays package names for suggested types. See java-debug#505.
  • Integrate the build support for Gradle build server project. See #1372, java-debug#503

Changed

  • Respect the setting 'java.debug.settings.forceBuildBeforeLaunch' even if autobuild is disabled. See #1380.

0.53.0 - 2023-08-01

Added

  • Automatically refresh the CALL STACK view when the attached sources for frames have changed. See #1370.

Changed

  • Remove marketplace preview flag. See #1369.

0.52.0 - 2023-06-30

Added

  • Use the setting java.debug.settings.debugSupportOnDecompiledSource to enable/disable debugging support on the decompiled source code. This feature requires Language Support for Java by Red Hat@1.20.0 or higher. See #1356.

0.51.0 - 2023-05-31

Fixed

0.50.0 - 2023-04-26

Added

  • Support specifying the exception types you want to break on. See #1175 and #295.

0.49.1 - 2023-03-28

Added

  • Add context menus "Auto/Manual Expand Lazy Variables" to Variables view to auto show 'toString()' value. See #1316.

Fixed

  • Fix the error 'compareVersions is not a function'. See #1307.

0.49.0 - 2023-02-28

Added

  • Enable Hot Code Replace when autobuild is disabled. See #1296, #1302.

Changed

  • Display the running launch config name in progress bar for transparency. See #1299.
  • launch previously launched application if the current file isn't executable. See #1036.

0.48.0 - 2023-02-01

Changed

Fixed

  • Prioritize lookup the project source code during debugging. See #1215. Thanks to mozhuanzuojing for contribution.

0.47.0 - 2022-11-29

Changed

  • Optimize the build error report of "Build failed, do you want to continue?". #1214.

Fixed

  • Use the system encoding to generate the *.argfile. #1112.
  • "shortenCommandLine": "argfile|auto" should include "vmArgs". #1254.

0.46.0 - 2022-11-02

Added

  • Add "Step Into Target" feature to allow stepping directly into a specific function call when paused on a line. See #1192. Thanks to Gayan Perera for contribution.

Changed

  • Exclude /node_modules/ from .vscode/launch.json searches. See #1234. Thanks to Brandon Cheng for contribution.

Fixed

  • Conditional Breakpoint got error code in reply:504. See #1250.

0.45.0 - 2022-10-12

Added

  • Visualize the inline breakpoint locations. See #1193.
  • Show an extra column cursor when an inline breakpoint is hit. See #1202.
  • Support JEP 425: Virtual Threads (JDK 19). See #1159.

Changed

  • Enable async jdwp based on network latency for auto mode. See java-debug#447.

Fixed

0.44.0 - 2022-09-01

Added

  • Experimental: Support processing JDWP commands asynchronously to improve response speed of remote debugging. It's only enabled by default on VS Code Insiders. You can also opt-in by setting java.debug.settings.jdwp.async. See #1208 and java-debug#436.
  • Add support to specify Java executable via the property javaExec in launch.json. See #1198. Thanks to Gayan Perera for contribution.
  • Add support for lambda breakpoints. See java-debug#427. Thanks to Gayan Perera for contribution.

0.43.0 - 2022-07-27

Added

Changed

0.42.0 - 2022-06-29

Added

  • Support function breakpoints, see #258. The current version support adding a function breakpoint with the syntax as FullyQualifiedClassName#methodName (e.g. java.util.ArrayList#add). Thanks to Gayan Perera for contribution.

Changed

Fixed

  • fix artifactId typo in Troubleshooting.md. #1180. Thanks to btoo for contribution.

0.41.0- 2022-06-01

Added

  • Provide "Stop Java" button when triggering "Run Java" action. #1166.
  • [API] Support DAP request processId and event processid to get the exact pid of current running Java process. java-debug#413.

Changed

  • Naming Java terminals with different names. #1164.
  • Enable Java terminal link provider on all terminals. #1168.
  • Disable HCR button when running Java without debugging. #1167.

0.40.1- 2022-04-15

Fixed

  • Update command id to 'java.project.addToSourcePath.command'. #1152.

0.40.0 - 2022-03-28

Fixed

  • Fix extension version. #1146.

0.39.0 - 2022-03-28

Added

  • Support lazy loading object values from toString(). java-debug#401.
  • API - Provide an api to query the processId of the debugging Java process. java-debug#399.

Changed

  • Print logpoints to debug console. #710. Thanks to James Clark for contribution.

Fixed

0.38.0 - 2022-01-26

Added

Changed

  • Change the inline button to debug icon. #1108.

Fixed

  • Improve the search performance of resolving main class. java-debug#395.
  • If mainClass not specified, it will find main classes not belonging to current workspace. #1098.
  • Update CONTRIBUTING docs. #1105.

0.37.0 - 2021-11-24

Added

Fixed

  • Address encoding issues on Windows. #1077.
  • Encoding - launcher.bat could not pass on redirected input into the java program being debugged. microsoft/vscode-java-pack#756.
  • Encoding - Launching BAT for UTF-8 fix is incompatible with Security Policies disallowing BAT execution. #646.
  • Encoding - Non-ASCII char support for Windows terminals. #622.
  • Encoding - [Windows non-ASCII folder] Error: Could not find or load main class. #623.
  • Step filter in the settings.json is not working. #1085.
  • Contribution from John Grant: Support multiline values in envFile. #1061.
  • Contribution from Adrien Piquerez. Fix NPE when using step filter. microsoft/java-debug#387.
  • Contribution from Douglas M. Barcellos. Update telemetry setting declaration in README. #1084.

0.36.0 - 2021-09-23

Changed

  • Adopt new createStatusBarItem API for id and name properties. #1020.

Fixed

  • Unicode character in class name will fail to run. #780.
  • Launching apps which require both a modulepath and a classpath doesn't work with shortenCommandLine="argfile". #1047.
  • Debugger fails to load variable values due to java.lang.OutOfMemoryError. #1044.
  • Fix privacy in the logger. PR#1048.

0.35.0 - 2021-07-28

Changed

  • Add link to check detatils while reporting debugging progress. PR#1034.

Fixed

  • Catch up build errors before running a Java application. #949.

0.34.0 - 2021-05-26

Changed

  • Allow customizing the "classPaths" and "modulePaths" configurations via launch.json. See #93, #980.

0.33.1 - 2021-04-30

Fixed

  • HotFix: After upgrade from vscode-java v0.77.0 to v0.78.0 can't debug tests. #995.

0.33.0 - 2021-04-28

Added

  • Support inline values feature. PR#977.
  • Show VARIABLES with different data views. PR#982.
  • Adopt new APIs from vscode-tas-client. #974.
  • Adopt workspaceTrust in package.json. PR#988.

Changed

  • Engineering: Clean up deprecated logs. PR#987.

Fixed

  • Breakpoints inside record methods don't work. #973.
  • Support environment variable for port number in launch.json debug configuration. #962.
  • Thanks for the contribution from ZingBlue: Spelling fix. #968.

0.32.1 - 2021-03-23

Fixed

  • Cannot launch debug session using JDK 16. #970.

0.32.0 - 2021-03-12

Added

  • Adopt TAS client for A/B testing. PR#959.

Changed

  • Update to new product logo. PR#952.
  • Adopt new 'run' menu in editor title. PR#956,PR#960.
  • Engineering - Enable GitHub Actions. PR#951.

0.31.0 - 2021-02-02

Added

  • Support envFile option in launch.json. #523.

Fixed

  • Git bash failed to execute Run/Debug when Windows username have blank space. #678.
  • TEMP folder with spaces breaks debugger process. #822.
  • The sort of completion list in DEBUG CONSOLE is different from that in editor. #909.
  • The program failed to run in terminal if clicking run button several times in succession. #924.
  • Fix vulnerabilities. #935, #936.

0.30.0 - 2020-12-16

Added

  • Add run button as inline button in Java Project Explorer. PR#900.
  • Use progress to hint the current build status whenever you trigger the Run and Debug features. PR#919.
  • Thanks for the contribution from pablojimpas: Spanish localization support. PR#904.

Changed

  • Make the run buttons in editor toolbar more context-aware. PR#898.
  • Update the group name of the Run and Debug menus registered in the Java Project Explorer. PR#908.
  • Simplify the name label of the launch configuration. PR#921.
  • Debt: Enable more tslint rules. PR#914,PR#918.

Fixed

  • Find Java version from release file. #910.

0.29.0 - 2020-10-16

Added

  • Jump to source when clicking the stack trace printed to the terminal. PR#890.
  • Contribute Run and Debug menus to Project Explorer. #878.
  • Provide a user setting java.debug.settings.vmArgs to set the default VM arguments to launch your program. #220,#876.
  • Provide a user setting java.debug.settings.onBuildFailureProceed to force the debug session to proceed when build fails. #888.

Changed

  • Allow cancelling the outdated codelens job. PR#881.

Fixed

  • Fix the wrong auto-completion result when typing the evaluation expression in DEBUG CONSOLE. #880.
  • Fix the error 'UNC path is missing sharename: \\java'. #882.
  • Use the correct runtime to validate the JVM versions between the debugger and debuggee. PR#353.

0.28.0 - 2020-08-27

Added

  • Add run/debug buttons to editor title bar for single file debugging. #834.
  • Add user settings java.debug.settings.jdwp.limitOfVariablesPerJdwpRequest and java.debug.settings.jdwp.requestTimeout to control JDWP request. #862,#863.

Changed

  • Reduce the frequency of JDWP requests to improve performance when expanding VARIABLES view. #347.
  • Migrate the legacy log to the telemetry wrapper. #866.

Fixed

  • Fix Hot Code Replace error "Cannot find any changed classes for hot replace!". #855.

0.27.1 - 2020-07-21

Fixed

  • Hot Code Replace always reports "Cannot find any changed classes for hot replace!". #850.

0.27.0 - 2020-07-17

Added

  • Break on exception for "just my code". #756.
  • Support step "just my code". #628.
  • Show return value of a method. #660.
  • Support "copy value" from Variable viewlet. #819.
  • From upstream jdt: support using lambda and reference expressions in debug evaluation. #281.
  • From upstream jdt: support evaluating local variables in the lambda body. #754.

Changed

  • Always give UI feedback whenever you click button to apply code changes. #833.
  • Automatically add -XX:+ShowCodeDetailsInExceptionMessages when launching your program with Java 14. #797.
  • Adopt the new resolveVariable API. #750.
  • Adopt DebugAdapterDescriptorFactor API. #751.

Fixed

  • Give a response when you trigger debugging in LightWeight mode. #841.
  • Failed to get variables. Reason: com.sun.jdi.InvalidStackFrameException. #767.
  • Render the source link for stack trace from Java modules. #824.

0.26.0 - 2020-05-13

Added

  • Support picking a Java process to auto attach. #759.

Fixed

  • When running the Gradle application, the test scope is not filtered out. #715.
  • Conditional breakpoint fails in the multi thread scenario. #782.
  • Show a warning message about the Unsupported JDK error. #789.
  • vmArgs in launch.json does not accept an array of strings. #778.
  • Activate the extension before execute Java extension commands. #775.

Changed

Thank Mathias Fußenegger for contribution.

0.25.1 - 2020-03-06

Fixed

  • Fix the Error: Could not find or load main class @x.y.z.argfile. #769.
  • Cannot hit breakpoint at the class using Java 13 Text Blocks. #773.

0.25.0 - 2020-02-20

Added

  • Provide context menu to continue/pause all/other threads. #748.
  • Contribution from bhoppeadoy: Add user setting java.debug.settings.numericPrecision to set the numeric precision when formatting doubles in "Variables" or "Debug Console" viewlet. #745.

Fixed

  • Use project's Java runtime to launch the application. #753.
  • Restart stop but not start the program. #752.
  • Contribution from xiaoyinl: Use HTTPS wherever possible. #732.

0.24.0 - 2019-12-25

Added

  • Support breaking when value changes (a.k.a. Data Breakpoints). #654.

Changed

  • Improve "Run Java" experience: F5 will run the current file without generating launch.json. #724.

Fixed

  • Debug console will hang on Java exception stack trace. #719.
  • Debug console won't automatically append () if selecting a method in completion list. #711, #691.
  • Cannot pass vmArgs array to Java 13 project. #703.

0.23.0 - 2019-10-29

Added

  • Provide "Fix..." suggestions when "Build failed" occurs during launching the application. #358.
  • Prompt to add the folder to source path if the running file isn't on classpath. #470.
  • Provide samples for the commonly used debug configuration. See the doc.

Fixed

  • It's safe to keep running the run/debug codelens if the debug configuration fails to save into the launch.json. PR#673.
  • Improve the error handling when running the file via the context "run" or "debug" menu. PR#679.
  • Support searching main classes from the workspace invisible project. PR#305.

Changed

  • Update troubleshooting doc for class not found error. See the doc.
  • Update troubleshooting doc for build failed error. See the doc.

0.22.0 - 2019-09-24

Added

  • Show Run/Debug buttons when hover on a main method. #657.

Fixed

  • Debugger just broken with git bash as the default shell on Windows. #642.
  • [Mac] Failed to launch debuggee in terminal with TimeoutException. #637, #651.
  • Pop an error message when click HCR button in the Run mode. PR#665.
  • Don't escape single quote of the program args. PR#668.

0.21.0 - 2019-08-26

Added

  • Add menu entries to Run and Debug a Java application when you right click a Java file in file explorer or opened editor. #626.

Changed

  • Remove hard dependency of redhat.java. PR#617.
  • Change the default console to integrated terminal. #605.

Fixed

  • Java language server is activated by mistake when debugging a non-Java project. #238.
  • [Windows] integratedTerminal console does not showing unicode characters. #524.
  • Contribution from pi1024e: Fix UI typos. PR#630.

Thank pi1024e for contribution.

0.20.0 - 2019-07-01

Fixed

  • Fix: Adding wrong jar version to the classpath. #566.
  • Fix: Adding wrong classpath at runtime for multi modules maven projects. #584.
  • Contribution from tom-shan: Should break earlier when destroying temporary launch file. PR#280.

Thank tom-shan for contribution.

0.19.0 - 2019-05-31

Added

  • Add a debug toolbar button to apply the changed classes to the running application. #559.
  • Show toString() values in Variable window and hover tooltip. #315, #364.
  • Add a global user setting java.debug.settings.console to specify the default console to launch your program. PR#594.

Fixed

  • Fix: The debug toolbar doesn't close after the program running in external terminal exits. #582.
  • Fix: Cannot stop the debugging process automatically in attach mode. java-debug#273.

0.18.0 - 2019-04-23

Added

  • Enable "Logical Structure" view for Map and Collection variables. #227.
  • Add the source hyperlinks for the stack traces in the Debug Console output. #490, #506.
  • Automatically add --enable-preview to vmArgs when necessary. #553.

Changed

  • Disable java.debug.settings.showStaticVariables by default to not show the static fields.

Fixed

  • Fix: Debug Console does not support autocomplete when a .class file is open. #535.

0.17.0 - 2019-03-06

Added

  • Popup the exception details via a UI widget when an exception breakpoint is hit. #522.

Changed

  • Reduce the extension load time by using webpack. #492, #517.

Fixed

  • Add a new debug configuration shortenCommandLine to fix the issue "CreateProcess error=206, The filename or extension is too long". #110.

0.16.0 - 2018-12-12

Added

  • Provide Chinese localized settings page for Java debugger, including launch.json configuration and user settings. #472, #477.
  • Add new user settings java.debug.settings.forceBuildBeforeLaunch to control whether to build the workspace before Run/Debug. #462.
  • F5 will auto launch the current Java file if mainClass in launch.json is set to the variable ${file}. #431

Changed

  • Simplify generated launch.json. #476.
  • Remove the emoji before Run/Debug CodeLens. #475.
  • Use vscode.open api instead of opn library. #479.

Fixed

  • Fix the main class isn't unique issue. #420.

0.15.0 - 2018-11-01

Added

  • Contribution from Thad House: Add new user settings java.debug.settings.enableRunDebugCodeLens to enable/disable Run|Debug Code Lenses on main methods. #464.
  • Contribution from Julien Russo: Add italian translation for extension configuration. PR#463.

Thank Thad House and Julien Russo for contribution.

0.14.0 - 2018-10-10

Fixed

  • Fix: Code Lenses for Run/Debug links on main methods don't show up immediately. #438.
  • Fix: It throws "ConfigError: 'mymodule/App' is not a valid class name." for java 9 program. #437.
  • Fix: Cannot run from src/test anymore. #413.
  • Fix: It throws InvalidStackFrameException during evaluating on conditional breakpoint. #369.
  • Fix: The launch command for internalConsole is different from integratedTerminal. #440.

0.13.0 - 2018-9-19

Added

  • Use code lens to run java program in a much simpler way. #375.
  • Make args/vmArgs accept an array. #389.
  • Make mainClass accept variables. #85.

Fixed

  • Fix: Still include test classes in classpaths when auto resolve maven project. #378.
  • Fix: Duplicate class path during launching. #370.
  • Fix: Update Active Editor oct icon to file instead of clock. #403.
  • Fix: Launching the debuggee with the same JDK as java language server instead of JRE. #366.
  • Fix: Avoid pop up error window many times for logpoints in a loop. #360.
  • Fix: Debug buttons disabled. #411
  • Fix: StepResponse/ContinueResponse should be sent before StoppedEvent. java-debug#134

0.12.2 - 2018-9-6

Fixed

  • Fix: Runtime scope class path entries are missing. #402.

0.12.1 - 2018-8-31

Fixed

  • Fix: env config in launch.json not respected. #393.

0.12.0 - 2018-8-29

Added

  • Start without debugging. See #351.
  • Add the validation to mainClass and projectName before launching. See #355.
  • Add "Learn More" link jumps to the associated troubleshooting paragraph #360.

Changed

  • Put recently used main class in the top #350.
  • Enable evaluation for hovers #297.
  • Distinguish user errors and system errors #288.

Fixed

  • Fix: vulnerabilities issue PR#356.
  • Fix: NPE for CompletionsProvider PR#206.
  • Fix: Debugger slow when watching variables #305.
  • Fix: Should not include test classes in classpath #111.

0.11.0 - 2018-8-2

Added

Changed

  • Auto select Java Debugger for .java file. See PR#329.
  • Improve the launch.json auto-generation UX. See PR#342.
  • Improve the logger coverage for the error response. See PR#190.

Fixed

  • Fix the attach error in JDK 10. See PR#187.
  • Fix the Java Debug Server plugin build error in JDK 10. See PR#194.

0.10.0 - 2018-6-27

Added

  • Add support for Logpoint. The minimum compatible VS Code version is 1.22. See the feature request #272

Fixed

  • Contribution from LunarArcanus: Fix the grammar issue in README. See PR#306.
  • Fix the project's build errors in JDK 9/10. See PR#178

0.9.0 - 2018-4-26

Added

  • Support auto-complete feature in debug console view. See the feature request #237

Fixed

  • Fix the ObjectCollectedException when enabling ExceptionBreakpoint. See Issue #182
  • Fix the issue #277 that the debugger doesn't stop on caught/uncaught exceptions. See PR #172
  • Fix the issue #273 that Chinese characters directory will cause messy code during stack trace's source looking up. See PR #170

0.8.0 - 2018-4-3

Added

Changed

  • Enable hot code replace by default. See PR#263
  • Wait for building successfully before launch debug session. See PR#257
  • Automatically detect projectName when only one main class or project available. See PR#164

0.7.0 - 2018-3-15

Added

Changed

  • Fix the unsupported breakpoint at method entry/exit issue. See PR#129
  • Fix the issue when the projectName is not specified, the expression evaluation doesn't work. See PR#156
  • Fix VMDisconnectionException in HCR. See PR#150

0.6.0 - 2018-2-1

Added

  • Support hot code replace. See PR#225

0.5.0 - 2017-12-20

Added

  • Support step filters when stepping. See PR#155
  • Support expression evaluation. See PR#126, PR#131
  • Publish the binaries to the maven central repository. See PR#132

Changed

  • Adopt new VSCode 1.19.0 debug activation events. See PR#196
  • Looking up the stack frame's associated source file from source containers to improve searching perf. See PR#127

0.4.0 - 2017-11-30

Added

  • Add stopOnEntry and console options for launch.json. See PR#177
  • Support console input by launching the program in the integrated/external terminal. See PR#122
  • Add debugging settings: java.debug.settings.showHex, java.debug.settings.showStaticVariables, java.debug.settings.showQualifiedNames, java.debug.settings.maxStringLength. See README for details
  • Support project scope when resolving multiple-root project. See PR#174

Fixed

  • Fix single file build issue. See Issue#167
  • Fix perf issue when debugging with "stopOnEntry". See PR#115

0.3.1 - 2017-11-17

Fixed

  • Fix the unable to start debugging issueIssue#146

0.3.0 - 2017-11-10

Added

  • Support debugging java 9 project. See Issue#47
  • Support debugging standalone java file. See Issue#94
  • Support "cwd" and "env" in launch.json. See Issue#12, Issue#75

Changed

  • Build workspace before starting debugger. See Issue#32
  • Show progress when initializing the launch.json. See PR#106
  • Get debug settings from VSCode user preferences. See PR#135,PR#94

Fixed

  • Fix perf issue on getting locations of breakpoint. See Issue#49
  • Show warning message when the debugger and the debuggee run in the different versions of JVMs. See Issue#30

0.2.0 - 2017-10-20

Added

  • Automatically resolve the main class during launching. See Issue#9
  • Fully support external source files together with the changes from VSCode. See PR#58

Changed

  • Adopt the new DebugConfigurationProvider protocol of VS Code. See PR#87
  • Display the function names in the format of ClassName.MethodName(Parameter List...).. See PR#73
  • Improve the call stack display info for the files without sources. See PR#72

Fixed

  • Fix the inconsistent URI issue when set breakpoint request. See PR#84
  • Avoid two stopped events for step and breakpoint. See Issue#14
  • Fix the issue that JDT search might return multiple results from the same project. See Issue#21
  • Avoid send error messages after debugger adapter stopped. See PR#75
  • Fix several exception cases. See PR#64, PR#67, PR#74

0.1.0 - 2017-09-27

Added

  • Launch/Attach
  • Breakpoints
  • Exceptions
  • Pause & Continue
  • Step In/Out/Over
  • Variables
  • Callstacks
  • Threads
  • Debug console