Releases: provegard/ncdbg
Releases · provegard/ncdbg
Release 0.8.4
- Exclude 'v8only' from printed DevTools URL to make newest Chrome/DevTools stop on breakpoints.
Also exclude 'experiments' since I don't think it's needed. (issue #100) - Handle script whose source name contains <eval> multiple times. (issue #101)
- Log events when
handleOperation
times out, to be able to understand the error mentioned
in issue #101. - Support new
Debugger.enable
with arguments. (issue #106) - Upgrade Akka to 2.5.25.
Release 0.8.3
Better support for replaced script. If a script is reloaded with the same URL, the old script is "delisted." Previous behavior of creating "ndx" versions of the script has been removed. Using the possibility to run code from multiple versions of the same script seems like an edge case—it is more likely that reloading a script means that the new version should take effect. (Issue #98)
Release 0.8.2
- In the ncdbg and ncdbg.bat start scripts, add tools.jar to the class path
even if NCDbg is built using a Java version that doesn't
include tools.jar. - Fix "bad substitution" error in the ncdbg start script when the sh
shell is Dash. - Show the Java version that NCDbg was built with on boot.
Release 0.8.1
- Handle arguments to Debugger.stepInto (issue #95)
- Change suspend policy to "suspend all threads." This is required to avoid JDI deadlocks
with Java 10. - Various changes to ensure stability given execution across multiple threads.
- Support "attach on demand" a.k.a. lazy mode. In this mode, triggered by using the
--lazy
command line switch, NCDbg won't connect to the debug target until DevTools connects, and
will stay alive if the debug target dies. - Use Gradle 4.8 for the build system. Needed for building with Java 11.
Release 0.8.0
- Don't rely on Nashorn syntax extensions in the property extractor code, since the target may
have disabled them (issue #68) - Pause on reference errors if pausing on exceptions.
- Detect a script added during code evaluation, e.g. when the
load
extension is used (issue #66) - Don't capture print statements while paused, in order to avoid deadlock (issue #66)
- Try to make general pause more stable, only set breakpoints in script frames (issue #71)
- Make script contents hashing thread safe - avoids duplicate scripts with the same contents.
- Support setting a breakpoint in an unknown script (via URL or URL regexp). Emit BreakpointResolved
when a script that matches the requested breakpoint is seen. This makes it possible to use the
DevTools Filesystem/workspace feature. - Ensure that changing a local variable via console code evaluation works after step/resume, i.e.
that the new value actually remains (issue #72) - Handle JAR URLs better. The
jar:
prefix is dropped so that embedded resources appear as
"navigable" files in the DevTools source tree. - Fix preview generation for typed arrays (issue #73)
- Fix console expansion of big arrays (ES6 needs to be transpiled to ES5) (issue #76)
- Add dependency on Google Closure Compiler
for transpilation of ES6 code.
- Add dependency on Google Closure Compiler
- Fix object property extraction when Java is disabled (Nashorn script engine created with
--no-java
)
(issue #80) - Fix VS Code connection problem, serve web sockets via /json/list also (issue #79)
- Fix VS Code locals property extraction error, handle arguments to
Runtime.callFunctionOn
beingnull
(issue #79) - Be friendly towards VS Code when it asks about user agent (for internal Debugger for Chrome logging)
(issue #79) - Serialize domain actor requests to avoid race conditions that prevent object properties from
being fetched because the VM has resumed (issue #77) - Fix stepping over a line where there is a breakpoint (issue #82)
- Make sure script-based property extraction happens on the correct thread (issue #78)
- Cache certain functions in Runtime.callFunctionOn. DevTools in Chrome 65.0.3325.146 introduces some
caching but prior to that autocompletion is slow. - Handle event request that is
null
when invoking a request-specific event handler (issue #88) - Support Runtime.compileScript (and runScript) (issue #84)
- This adds support for script snippets in DevTools.
- It also enables code continuation in the console, since DevTools uses
compileScript to detect unterminated statements. - Please see the documentation for limitations with compiled scripts.
- Ignore breakpoints (including
debugger
statements) when evaluating code, to prevent deadlock. - Faster property extraction for scope objects (issues #89)
- List known bugs as console warnings when DevTools connects.
- Fix evaluation of erroneous code in
Runtime.compileScript
- always include an exception value
(issue #90) - Show entries for
Map
andSet
as an internal [[Entries]] property (issue #75) - Show proper preview for
Map
andSet
(issue #74) - Ignore the silent flag passed to many methods, since we ignore exceptions anyway while in
paused mode. Always return exception details back to the caller (issue #87) - Less verbose error message after evaluation, don't show ECMAException (issue #92)
- Don't leak hidden entries array for Map/Set to console autocompletion (issue #94)
- Fixed broken class scanning, now scanning isn't complete until all classes have been scanned,
and yielding/resuming scan works. - Improve class scanning speed by giving NCDbg-evaluated scripts a special source name that can
be detected before getting the script source.- NOTE! If NCDbg is attached to a process that has been debugged with an older version,
code eval scripts may appear in DevTools. Restarting the target process should fix that.
- NOTE! If NCDbg is attached to a process that has been debugged with an older version,
- Make sure undefined variable access in artificial local scope results in ReferenceError.
- Avoid NPE in UserAccessorProperty (Nashorn) when evaluating code on global scope after
evaluating same code on local artificial scope. - Faster code evaluation (~50%) for Runtime.callFunctionOn, and faster construction of artificial local
scope. - Reuse syntax check via compileScript for subsequent code evaluation (EXPERIMENTAL).
- Ensure DevTools sees Debugger.scriptParsed for a script before compileScript returns.
- Fix bug with evaluating code inside a
with
block (issue #93) - Make sure global object is described properly when evaluated in the console.
- List all scopes in a function [[Scopes]] internal property.
Release 0.6.0
- Lift requirement that a script path must be absolute - support relative paths as well (though relative source maps won't work).
- Intercept calls to Nashorn's
print
extension and send the printed message to DevTools as a console log message. - Handle GC better during code evaluation (issue #62)
- Initial support for building with Java 9 (issue #67)
- Support debugging in Visual Studio Code.
Release 0.5.6
- Return internal properties (
[[Prop]]
) (issue #58):[[TargetFunction]]
for a bound function[[Scopes]]
for any function[[JavaStack]]
for a Java exception (was previously a regular property)[[Message]]
for a Java exception (was previously a regular property)
- Don't return any Java array properties if only accessors are requested.
- Merge scripts based on contents hash regardless of recompilation/original order (issue #64)
- Support script reload with changed contents and same path (issue #65)
- Scan classes in chunks to prevent locking up and preventing other operations (issue #63)
Release 0.5.5
Release 0.5.4 (2017-08-14)
- Trying to make tests more stable wrt breakpoint columns.
- Return only distinct locations when setting a breakpoint.
- Parse ES6 arrow functions when guessing columns.
- Properly pause on uncaught exceptions (issue #52)
- Fix variable setting when stack contains recusion (issue #53)
- Emit Runtime.exceptionThrown for uncaught errors.
- Support marshalling of ES6 Symbol (Java 9) (issue #54)
- Support marshalling of ES6 Map, Set, WeakMap and WeakSet (Java 9) (issue #56)
- Stability fixes
- Marshal __proto__ correctly
Release 0.5.2
- More robust pause support (issue #51)