Skip to content

Releases: provegard/ncdbg

Release 0.8.4

20 Aug 20:33
Compare
Choose a tag to compare
  • 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

12 Oct 07:23
Compare
Choose a tag to compare

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

21 Jun 11:15
Compare
Choose a tag to compare
  • 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

19 Jun 17:48
Compare
Choose a tag to compare
  • 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

12 Apr 22:06
Compare
Choose a tag to compare
  • 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)
  • 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
    being null (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 and Set as an internal [[Entries]] property (issue #75)
  • Show proper preview for Map and Set (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.
  • 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

22 Oct 20:55
Compare
Choose a tag to compare
  • 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

15 Sep 16:58
Compare
Choose a tag to compare
  • 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

25 Aug 07:13
Compare
Choose a tag to compare
  • Remove column guessing—it's too fragile.
  • Make it possible to pause in a script/function that hasn't been compiled yet (issue #61)
  • Fix step-into in Java 9 (issue #60)
  • When stepping out of a function, try to stay in the callee to avoid unwinding
    a long call chain.

Release 0.5.4 (2017-08-14)

14 Aug 17:04
Compare
Choose a tag to compare
  • 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

31 Jul 08:38
Compare
Choose a tag to compare
  • More robust pause support (issue #51)