All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
4.3.0 - 2024-06-18
- Lucee 6 Certification
- BoxLang additions
- Better information in dev env, if debugger is not accessible
- CBDEBUGGER-25 - Account for null datasource in QoQ
- Alias for testing mode in CommandBox 6
- JVMUtil wrong location for the temp directory for producing heap dumps
4.2.0 - 2024-01-10
- New
HyperCollector
so you can now track hyper requests if enabled Timer
can now add timers a-la-carte via theadd()
methodTimerDelegate
now has aaddCBTimer()
method- New fast and furious and tiny SQL/JSON Formatter
- New
LuceeSqlCollector
you can use to profile all SQL calls in Lucee - New
luceeSql
configuration to control the Lucee SQL calls collector - Changed the
instance
argument toany
in thedebuggerService.openInEditorURL
to allow for a flat representational string of the URL to open in the editor. - Ability to download a heap dump snapshot from the visualizer
- The request panel dock is now a real dock and the only one presented, the rest are only show in the visualizer
- The
requestTracker.expanded
option is now removed, it's always expanded for visualizer and contracted for the dock
- Updated test harness UI to make it easier to create debugging events
- Dumb whitespace added by CFML engines when doing inline
<pre>#method()#</pre>
calls. - Better error handling when Debugger assets are not compiled instead of a cryptic error message:
The parameter [str] to function [closure_m] is required but was not passed in.
4.1.0 - 2023-04-17
- New github actions
- Donot enable debugger in testing mode
- Adobe dumb array by value
- ColdBox 7 support
- New
TimerDelegate
that can be used to add timer functions to any model:startCBTimer()
stopCBTimer()
cbTimeIt()
addCBTimer()
- Timer service rewritten to support nesting and included metadata
- Ability to open views and layouts from the execution timers in any Code Editor
- New
WireBoxCollector
which is only used if enabled. This greatly accelerates the performance of the request collector since before they where in the same collector. - Ability to open CFCs that are profiled by the WireBox Collector in any Code Editor.
- Ability to open the Handler events that are profiled by the Request Collector in any Code Editor.
- New life-cycle events:
onDebuggerUnload
,onDebuggerLoad
- Ability for the custom
timeIt()
functions to accept metdata to store in the execution timer - New
Slowest
Queries panel for cborm, acf, and qb/quick - New visualizer total db time as well as request time including percentage of the request time
- Ability to export a profiler in json
- Ability to sort the visualizer's profilers
- Timer service reconstructing the timer hashes and profilers twice.
timeIt()
helper was not passing the closure correctly- If doing a fwreinit on the visualizer, the current profiler was still being show even thought it was empty. Add an empty check to avoid the big bang!
- Empty response codes for Adobe, due to their incredibly weird Response object nesting.
- Migration to java random id's for speed
- Tracers are now streamlined and stored alongside the request profilers
- Small UI fixes on request profiler HTTP methods
- WireBox collecting is now done by the WireBox collector not the Request Collector.
- Adobe 2016 Dropped
- If the debugger is disabled or not in debug mode, the panels and visualizers are still being rendered and exploding. This should be a 404.
- Upgraded entire front end build process to ColdBox Elixir v4
- Upgraded to Node 16 for all front end processes
- If the cbdebugger was embedded within an app already using Alpine, it will fail. Now it will leach on to the running Alpine app.
- CBDEBUGGER-19 - JSON Form serialization not working on formatting.
- CBDEBUGGER-17 If you change the monitor frequency, it does not clear the old monitor and you get n monitors
- CBDEBUGGER-16 Left double hash on no state for request tracker profiler
- CBDEBUGGER-15 Auto-Refresh is not working in latest version
- CBDEBUGGER-10 Executing Event That Uses QB From Interceptor Generates CBDebugger Exception
- CBDEBUGGER-6 Stop auto-refresh when visiting a actual request report
- Asynchronous saving of storage at end of requests
- Asynchronous size checks of storage
- Free memory diff in the visualizers
- Ability for each profiler to track how much memory they used during the course of the transaction by analyzing free memory
- New setting
requestPanelDock
to show/hide the request panel in the dock - Migration to use new module template approaches that supports github releases, compilation and more
- Exception bean delegations in debugger service to avoid multi-instantiations
performance
- Refactoring to increase
performance
and reusability - Migration to AlpineJS from jquery
- New
sqlformatter
module from @michaelborn - Updated to faster wasy to get a local ip and local hostname
- Actually show a 404 if debug mode is off
- JS Bumps
- Reload all modules. Makes no sense as you can just reinit.
- Thanks to @homestar9 changed the elixir asset to a specific of
cbdebugger.(js.css)
to avoid collisions with main app.
- Adobe 2021 support and automated testing
- Migration to github actions
- Do not render when the request's content type is NOT html
- Fix wrong cborm reference on QBCollector
- Look at the renderdata content type instead of type as it's more consistent in order to turn off the debugger on multi-marshalled sites
- [CBDEBUGGER-1] - Lucee debugger no longer shows below the cbDebugger. Turn off only on Ajax Calls
- Use Java property for version to work with jdk8+
- [CBDEBUGGER-2] - Made
cborm
andqb
disabled by default
- Completely rewritten debugger
- Updated tracers to match all logbox options so we can use them for display instead of hardcoding them in the push operation
- Complete migration to elixir for assets
- Complete migration to runnable events to make things easier for rendering and debugging
- New interceptor profiling via AOP
announce
interceptions - New object profiling via metadata AOP aspects via new settings:
profileObjects
,traceObjectResults
- New visualizer route
/cbdebugger
that if you are in debug mode, you can visualize the panels. Great for API apps - New method:
timer.timeIt()
so you can time code execution via a closure wrapper - New Helper Methods:
startCBTimer(), stopCBTimer(), cbTimeIt()
- Added the route record to the info panel so you can debug the selected route
- Highlights transactions that take over
200ms
or using theslowExecutionThreshold
setting - Refactored to use array of structs instead of queries for even faster timer performance
- Encapsualted request timers UI into a single template
Timer
is now built in script and optimized- Show timers as they start instead of how they end, huge UI update to visualize the timers
- Refactored the logbox appenders from
includes/appenders
toappenders
Dumpar
facilities removed due to security concerns
- Old
debugger
settings instead use themodulesettings.cbdebugger
according to ColdBox 5+ standards - Old helper code to remove helpers
- Removed the loaded modules as it just produced noise
- Removed the rc/prc snapshot comparisons, causes too much noise and not helpful anymore
- Upgraded Appender to script and fixes for LogBox 6
- More tests for logbox loading and appender registration
- Visual display of the debugger version
- ColdBox 6 support
- Formatting
- ColdBox 4 lingering code
- Formatting updates
- Quick/QB Panels
- Dropped ACF 11 support
- Updated location protocol
- Missing interception points for extending the panels:
afterDebuggerPanel
,beforeDebuggerPanel
- New Module Layout
- Dropping lucee 4.5 support
- ColdBox 5 Support
- Case-Sensitive filesystems fix
- Updated travis builds
- Unified workbench approach
- ColdBox Tracer Appender added by Default by Eric Peterson
- Travis integration
- DocBox update
- Build process update
- Fix unscoped currentrow which was throwing an error when debugging was enabled.
- Removed reference to missing images in CSS
- Updated build scripts
- How to turn off debugger for tests, it does this automatically now.
- filename cases don't match #5 on certain includes
- https://ortussolutions.atlassian.net/browse/CCM-14 Issue with unloading modules
- https://ortussolutions.atlassian.net/browse/CCM-25 Lucee support
- https://ortussolutions.atlassian.net/browse/CCM-24 Added names of rendered
- Unloading of helpers on unload views and layouts
- Updated production ignore lists
- Bug fixes on caching panels and chicken/egg issues for ColdBox loading
- Create first module version