Skip to content

Latest commit

 

History

History
251 lines (227 loc) · 14 KB

CHANGELOG.md

File metadata and controls

251 lines (227 loc) · 14 KB

MobDebug Changelog

v0.80 (Jun 16 2021)

  • Added workaround for luasocket 3.0-rc1 incompatibility with Lua 5.4.3 (closes #60, closes #61). Thanks to Catalin Marincia for the patch.
  • Removed comment removal logic from remote commands to limit code modifications (#53).
  • Removed check that prevented full stack to be returned by STACK command (closes #55).
  • Updated *vararg check to make it work with Lua 5.4 (closes #59).
  • Added resetting basedir value when DONE/done() command is executed (#51).
  • Improved handling of breakpoints in remapped cases (#51).
  • Improve debugging of openresty/lua_nginx scripts (closes #51).
  • Removed wxlua-specific logic to improve debugging wxlua apps with strict module.
  • Updated to improve based on static analyzer report.
  • Fixed garbage collection of 'captured' values (pkulchenko/ZeroBraneStudio#919).
  • Updated README to add cross-platform debugging and source map support.
  • Upgraded Serpent (0.302) to fix serialization issue (pkulchenko/ZeroBraneStudio#900).
  • Updated README to add Lua 5.4 support.
  • Upgraded Serpent (0.301) to avoid metafield processing when metatostring is disabled.
  • Added better report when trying to yield into debugging (pkulchenko/ZeroBraneStudio#801).
  • Fixed loadstring command for content that starts with an empty string.

v0.70 (Sep 02 2017)

  • Upgraded Serpent (0.30) to allow skipping __tostring (closes #27, closes #29).
  • Improved handling of __tostring failures in stack processing (#27, #29).
  • Fixed returning intercepted traceback if the value is not a string (fixes #33).
  • Updated traceback reported from debug.traceback to avoid skipping one frame (#31).
  • Limited setting debug.traceback to Lua5.1/LuaJIT (closes #31).
  • Upgraded Serpent (0.288) to add maxlength and other improvements.
  • Updated debugger to extend STACK command with additional options.
  • Updated debugger to add support for vararg expressions in EXEC command.
  • Updated debugger to extend EXEC command with additional options.
  • Fixed updir removal in normalization to only happen at the beginning of the line.
  • Updated stack generation for nginx/openresty as it no longer generates additional stack frame.

v0.64 (Aug 06 2016)

  • Add callback mobdebug.onscratch (thanks to @dodo).
  • Added path normalization to file names that don't start with @.
  • Added populating vararg (...) values in the main chunk during debugging.
  • Added path normalization to handle paths with up-dir references.
  • Added verbose option to the handle method of the debugger.
  • Added output method to pass stream information back to the controller.
  • Improved error checking after OUTPUT command.
  • Updated to reference one source for all hook masks.
  • Updated output method not to fail when debugging is not started.
  • Updated output stream processing to allow for empty strings.
  • Updated vararg stack handling to work around incorrect LuaJIT 2.0.0 values.

v0.63 (Jan 25 2016)

  • Added localization for coroutine.wrap call to allow modification (closes #17).
  • Added onexit callback and removed os.exit calls from the controller (#19).
  • Removed explicit assignment to loaded as this can be done only as needed (#23).
  • Switched to using string.* methods to avoid string metamethods in the debug hook.
  • Updated check for session completion to avoid early exit from debugging server (closes #24).
  • Updated tests to add listw and listb commands.
  • Upgraded Serpent (0.285) to add keyignore option.
  • Upgraded Serpent to add numerical format fix and __tostring protection.
  • Updated DONE response to allow for async processing (#19).
  • Updated information on Lua 5.3 in README.

v0.62 (May 2 2015)

  • Added variable arguments (vararg) to the stack trace.
  • Updated examples to add stack, basedir, and output commands (closes #15).
  • Updated removing breakpoints to remove all after DELALLB command.
  • Upgraded Serpent to 0.28 with more tostring processing (thanks to @andrewstarks).
  • Added explicit tostring for Lua 5.3 with LUA_NOCVTN2S set (pkulchenko/ZeroBraneStudio#401).
  • Extended check for mobdebug.loadstring result (pkulchenko/ZeroBraneStudio#387).

v0.61 (Nov 23 2014)

  • Added basedir method to explicitly set basedir when needed.
  • Added connection timeout and exposed connect method for customization.
  • Updated documentation for Lua 5.3 support and added features.
  • Updated error handling when starting debugging fails due to connection error.
  • Fixed DONE command to work with Lua 5.1 and 5.2 when breakpoints are set.
  • Fixed DONE command when executed in scratchpad.
  • Fixed DONE command to work from fragments loaded with loop().
  • Fixed references to debug library for environments that don't have it loaded.

v0.60 (Aug 30 2014)

  • Added support for nginx debugging using internal coroutine API.
  • Fixed localizaton in breakpoint handling function.
  • Added path processing for chunk names that look like file names.
  • Added line mapping support for debugging Lua-based languages.
  • Fixed compatibility with Lua 5.2 (#13).

v0.56 (May 11 2014)

  • Added pause method to suspend debugging from the application.
  • Added DONE command to stop debugging and continue execution.
  • Updated handling of os.getenv that may return multiple values (fixes #13).
  • Updated coroutine debugging to avoid using require calls.
  • Added support for setting/deleting breakpoints at run-time.
  • Added number conversion for MOBDEBUG_PORT.
  • Added check for loading 'os' module that may be absent on some systems.
  • Updated Serpent (0.272) to fix array indexes serialization.
  • Added closing Lua state during os.exit() for Lua 5.2+ (closes #11).
  • explicit load Lua standard library (thanks to Alexey Melnichuk)
  • Added explicit loading of table table (fixes #9).

v0.55 (Dec 14 2013)

  • Added setbreakpoint and removebreakpoint public methods (closes #8).
  • Fixed complex values 'captured' by redirected 'print' and not collected.
  • Fixed error reporting on debugging non-existing file.
  • Added ability to overwrite line and dump methods for serialization.
  • Added handling of case-sensitive partitions on OSX (fixes #6, closes #7).
  • Fixed Step Over/Out commands to stay in the same coroutine.
  • Updated LICENSE information.
  • Added optimization and limiting elements in a table in serializer (Serpent 0.25).
  • Added support for MOAICoroutine.new().run to enable coroutine debugging.
  • Added reporting of socket error for failed start()/loop() calls.
  • Fixed debugging on/off handling in 'main' thread for LuaJIT.
  • Fixed stepping through blocks with nil variables when 'strict' is in effect.

v0.54 (Aug 30 2013)

  • Added reset of hook visits in case earlier start() call is refused.
  • Added saving host/port configuration to reuse in start/loop calls.
  • Added handling of code fragments reported as 'source'.
  • Improved handling of done() in environments that reuse VMs.
  • Reset state to allow multiple start()/done() calls from the same process.
  • Replaces unpack with table.unpack for Lua 5.2 compatibility.
  • Updated filenames/source code heuristic to avoid serializing filenames.
  • Upgraded Serpent to 0.24 to fix table serialization issue.
  • Upgraded Serpent to 0.231 to fix luaffi issue.
  • Fixed debugging of zero length scripts.

v0.53 (May 06 2013)

  • Added handling of case-insensitive filenames on OSX.
  • Allowed start() to be called inside other functions (like assert).
  • Improved debugging performance.
  • Replaced socket.select with non-blocking .receive as it is faster.
  • Upgraded serializer to add notification on incomplete output.
  • Upgraded serializer (v0.224) to add support for __tostring and __serialize metamethods.
  • Updated to allow debug.traceback() to be called under debugger.
  • Fixed 'breaking' after executing OUT command that never reaches the target level.
  • Fixed terminating debugging of an empty script.
  • Fixed resetting cached source as it may change when basedir changes.
  • Fix stack trace when LuaJIT FFI data is present (add cdata handling).

v0.52 (Mar 04 2013)

  • Added done() method to finish debugging and to allow the script to continue.
  • Added support for cross-platform remote debugging.
  • Added support for code reloading and coroutine debugging under LuaJIT (v2.0.1).
  • Added using socket.connect4 when available.
  • Added support for debugging Lua 5.2 scripts.
  • Added check for os.getenv for those platforms that don't implement it.
  • Improved handling of run-time errors in serialized data (__tostring method).
  • Improved reporting of debugger errors to the application.
  • Moved mosync/mobileLua code into a separate module.
  • Fixed an issue with eval/exec commands not working immediately after start().

v0.51 (Dec 13 2012)

  • Added yield callback to customize event loop call during debugging.
  • Added custom error handler for start() call to report errors remotely.
  • Added serialization of remote 'print' results.
  • Added 'output' command to redirect 'print' remotely.
  • Added turning JIT off under LuaJIT to get reliable debug hook calls.
  • Added setting/using global vars in a way that is 'strict.lua' friendly.
  • Changed default port to 8172. Added setting port # using MOBDEBUG_PORT.
  • Updated license to add remdebug license information.
  • Upgraded to Serpent v0.20 to add serialization of metatables with __tostring and fix serialization of functions as shared keys.
  • Fixed using correct environment after the main script is done.

v0.50 (Oct 05 2012)

  • Improved path matching when absolute and relative paths are used.
  • Improved performance; thanks to Stephen Nichols for profiling and detailed suggestions.
  • Added conversion of file names on Windows to lower case to make x:\Foo and X:\foo to match in breakpoint checks.
  • Added reporting errors in deserializing stack data.
  • Fixed an issue with returning stack values with circular references.
  • Fixed serialization of usedata values that don't provide tostring().
  • Fixed an issue with wx IDLE event on Linux.

v0.49 (Sep 03 2012)

  • Added support for unicode names in load and breakpoint commands.
  • Added conversion to short path for unicode names on windows.
  • Added handling of exit/load/reload commands after watch condition is fired.
  • Added support for moai breakpoints and callback debugging.
  • Fixed an issue of starting debugging too early in some cases using start().
  • Fixed an issue with coroutine debugging.
  • Fixed an issue with yielding to wxwidgets apps while running main loop.

v0.48 (Aug 05 2012)

  • Added support for coroutine debugging. Added methods (coro/moai) to support coroutine debugging without adding 'on()' calls to all coroutines.
  • Added on/off methods to turn debugging on and off (to improve performance).
  • Fixed an issue with localized variables not being properly restored if there are multiple variables with the same name in the environment.
  • Added restoring variables between stack calls to make them reflect changes that can be caused by EXEC/EVAL commands.
  • Fixed compilation errors on scripts with a shebang line.

v0.47 (Jun 28 2012)

  • Added special handling to debug clients running under LuaJIT.
  • Fixed an issue when a remote client could not suspend/exit.
  • Added default configuration for start/loop/listen methods.
  • Relaxed safety checks to allow debugging lua code called from C functions (to support debugging Love2d and similar applications).
  • Fixed incorrect initial stack level when started with start() command.
  • Added short_src field to the reported stack data.

v0.46 (Jun 19 2012)

  • Added reporting of stack and variable (local/upvalue) information.
  • Added support for multiple results returned by EXEC/EVAL commands.
  • Added serialization/pretty-printing of results from EXEC/EVAL.

v0.45 (May 28 2012)

  • Added select() implementation to mosync client to abort/break a running mosync app.
  • Added support for scratchpad.
  • Added SUSPEND command to suspend execution of a running script.
  • Added 'loadstring' command to load chunks of code to run under debugger.
  • Added safety mechanism to LOAD/RELOAD to avoid aborting when there are C functions in the stack.
  • Added reset for loaded modules to get 'require' to be processed correctly after LOAD/RELOAD commands.
  • Added integration with MobileLua event loop to allow debugging of applications that require event loop processing.
  • Improved handling and reporting of run-time errors during debugging.
  • Fixed handling of multi-line fragments with comments executed with EXEC/EVAL.
  • Fixed exit from the debugger when the application throws an error.
  • Fixed an issue with saving/restoring internal local variables.
  • Fixed an issue with local variables not being updated after EXEC/EVAL commands.

v0.44 (Mar 20 2012)

  • Updated to work with "mosync" namespace (MobileLua 20120319 and MoSync 3.0).
  • Removed the use of "module()".

v0.43 (Jan 16 2012)

  • Fixed errors from LOAD/RELOAD commands when used with start() method.
  • Added reporting of a file name and a line number to properly display source code when attach to a debugger.

v0.42 (Dec 30 2011)

  • Added support for debugging of wxwidgets applications.
  • Added ability to break an application being debugged; this requires socket.select and async processing (doesn't work from the command line).

v0.41 (Dec 17 2011)

  • Added slash conversion in filenames to make breakpoints work regardless of how slashes are specified in file names and in setb/delb commands.
  • Added tests with breakpoints in files in subfolders.
  • Added optimization for filename processing in the debug hook (Christoph Kubisch).
  • Added conversion of newlines for EVAL/EXEC commands to make them work with multiline expressions.
  • Allowed 'setb' and 'delb' commands to accept '-' as the filename. The last referenced (checked/stopped at/etc.) filename is used.

v0.40 (Dec 02 2011)

  • First public release.