Releases: WheretIB/LuaDkmDebugger
v0.9.9
Added
- Added filter to the script list panel
- Columns in the script list are now sortable
- Added support for Visual Studio 2022
Changed
- Fixed the order of locals lookup to preserve shadowing
Known issues
In Visual Studio 2022, hover over complex expressions no longer works. For example, if you hover over prop
in tbl.prop
, there is no tool tip. However, now when you hover over tbl
, you will have a tool tip with a tree view where you can explore inside.
As a work-around, use Watch or Pin the expression from the root expression tool tip.
When the solution for updated behavior of Visual Studio 2022 arrives, a new release will be made.
v0.9.8
Added
- Mouse hover evaluation over members access after array indexing
- Added support for __index function evaluation
- Mouse hover performs this by default. Evaluation could have side-effects, new menu item can be used to disable auto-evaluation
Changed
-
Fixed inability to open files from temp folder which have spaces in the name
-
Fixed helper library load from paths with non-ASCII characters
-
Table indexing will no longer lookup members of a metatable, __index will be used immediately
-
Fixed value writes in Lua 5.1
-
Fixed written string type tag in Lua 5.2/5.3/5.4 to include 'collectible' flag
-
Array length operator will report element count until first 'nil'
-
Improvements for LuaJIT support (2.0.5 x86/x64, 2.1.0 x86/x64):
- Global variable lookup
- Fixed breaking on internal runtime errors
- Breakpoint and stepping support in multiple global states
- Fixed missing call stack in error handling
- Additional internal LuaJIT functions are hidden
- Value write support
- Fixed launch without 'Compatibility Mode' enabled
- Function upvalue lookup support
- Stability improvements
-
Remaining LuaJIT limitations include:
- Scripts loaded from a file are not captured for breakpoint placement/stepping immediately
- Conditional breakpoints are not supported
- Breakpoints based on function name are not supported (Add Breakpoint menu)
v0.9.7
Added
- Experimental support for LuaJIT (2.0.5 x86/x64, 2.1.0 x86/x64). Limitations include:
- Scripts loaded from a file are not captured for breakpoint placement/stepping immediately
- Only writes to 'number' are supported with LUA_GC64
- Conditional breakpoints are not supported
- Only one global state is supported for breakpoints/stepping
- Breakpoints based on function name are not supported
- Status bar for information about detected Lua library and helper attachment state
Changed
- Fixed a case when failed helper attachment to x64 process could suspend thread indefinitely
v0.9.6
v0.9.5
Added
- String values can be modified
- Support for assignments in watch and immediate windows
- Support for table and string length operator
Changed
- Watch values are refreshed after modification of a related value
- Fixed bool value modification in Lua 5.4
- Fixed nested linear array indexing
- Fixed breakpoints not being activated immediately after script load
- Fixed invalid call error display location
- Fixed error display location in Lua 5.1
- Fixed table size and content display in Lua 5.2 (nil entries)
v0.9.4
v0.9.3
v0.9.2
Added
- Optimization for table summary and element lookups using batched memory reads and lazy evaluation
- Optimization for function locals list using batched memory reads
- Function location display now works with Lua 5.1
- Function name caching for Lua 5.1 stack frames
- Conditional breakpoint support for Lua 5.4
Changed
- Fixed Lua version lookup and hook setup when Lua library is built with optimization
- Fixed crash on function data lookup when debugging Lua 5.1
- Fix for Lua state creation hook when library is built with optimization
- Fix for internal Lua function display on 'Step Out' when debugging Lua 5.1
- Fixed conditional breakpoints
v0.9.1
v0.9.0
Added
- Support for Lua 5.4
- Lookup in __index metadata table in expression evaluation
- Location display for Lua function values and Jump to Source context menu option
- Alternative name is generated for unnamed scripts
Changed
- Fixes for Lua libraries built with optimizations
- Fix for Lua sources without a valid name
- Compatibility Mode improvements
- Lua table address is now displayed in Watch
- Stability fixes
- Additional source file search locations
- '.lua' is added to temporary file names if the Lua source name doesn't contain it already
- Fixed long debugger startup when application is linked with /DEBUG:FULL and symbol file is large