* Validate mainClass and projectName configs
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
* Update ValidationResult scheme
* Revert 'errorMessage' to a neutral name 'message' for ValidationResult
* Only report not unique validation error when projectName is not specified
* Ignore mainClass validation when the user specified the classpaths manually
* Use Object.equals to compare two strings
1. add user error in DebugException
2. add user error logic in evaluation since a lot of them are reported in evaluation which is caused by known reasons(eg: compilation error).
3. enable evaluation on hover
* Spawn a process directly for noDebug mode.
* Support to run without debugging in terminal.
* Add isDebugMode interface for frequently used logic.
* Revert "Add isDebugMode interface for frequently used logic."
This reverts commit 1d2a27f64a.
* Refactor: use separate LaunchRequest handlers for debug/noDebug mode
* Handle DisconnectRequest for noDebug mode
* Register all handlers, let handler decide what to do.
* fix typo.
* Improve code readability.
* Refactor: Use a common launch request handler for both debug/NoDebug mode
* Delay the construction time of active launch handler instance.
* Rename classes to avoid confusion.
* Add log coverage for error response
* Use factory method to warp a DebugException to CompletionException
* Move the factory method to utility
* Move variable exceptionMessage to the closest code block where it's used
* Log error message throwed by evaluatable breakpoint
* Keep the overload method with the consistent arguments order
* Restrict travis ci to jdk8
* latest osx uses jdk10 and the plugin build failed, so roll back to an old osx image
* Support logpoint feature for java debugger
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
* Refactor the code per review comments
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
* Fix the project's build errors in JDK 9/10
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
* Fix review comments: Move constant string to a final variable
* Add basic impl of conditional BP
* remove an empty line.
* change a better var name
* add cache for conditional breakpoint to avoid duplicate compilation
* 1. fix an issue when exception is thrown during evaluation, the program is stopped at the exception
2. update a comment
* 1. fix the issue findFirst will throw exception if none is found.
2. fix the issue of a dirty evaluation environment cause the next evaluation failure.
* user filter to filter breakpoint event only
* rollback unfinished changes.
* 1. make ensureDebugTarget void and use exception for the error handling
2. keep only one CompletableFuture in evaluate
* Add location type check on breakpoint
Add location type check to avoid breakpoint on method/field which will never be hit in current implementation.
* fix breakpoint pos
update lines to the next line which is valid for breakpoint
* 1. add the logic to avoid duplicate install breakpoint when updated breakpoint lines have duplicate lines.
* revert unneeded change.
* removes invalid breakpoint
* fix checkstyle hint.
* Update typo in javadoc
* remove useless if condition
* remove tailing spaces.
* update javadoc
* revert the code to modify line numbers because in vscode, the action to set breakpoint will not report to our lang server immediately
* revert changes.
* 1. replace JdiObjectProxy with StackFrameProxy, because only stackframe uses it .
* 1. add a missing import.
* rename a variable
* fix compilation error after merge
* 1. add lock to prevent concurrent stackframe access
2. redefine the StackFrameProxy to only have thread and depth since the stackframe instance may be out of date
3. add stackframe provider and add logic to update stackframe during evaluation.
* add stackframe provider and add logic to update stackframe during evaluation.
* fix for a better flow
* fix for a better flow
* revert minor changes which is not needed.
* remove useless lines.
* clean evaluation inner states when the thread is to be continued.
* clean evaluation inner states when the thread is to be continued.
* lock on acquireEvaluationLock
* remove the duplicate expr check
* revert unneeded change
* refine if-else flow.
* redefine the lock
* change another method to override indicating sf is updated.
* rename some classes suggested by reviewer
* 1. refact variableProxy to contain thread reference,
2. stackframes/varaible/setVariable/evaluate will first gain the thread lock on stack frame manager.
* some minor changes of spaces and javadoc.
* convert to supplyAsync with try logic to handle lock
* Andy eval20 (#138)
* Redefine HCR event. (#133)
* Sequentially process debug requests (#135)
* bump version to 0.5.0 (#136)
* Redefine HCR event.
* bump version to 0.5.0
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
* don't use lock
* don't use lock
* don't use lock
* Minor changes: indentation, rename code -> expression