All pages
Powered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Release History

A synopsis of the major version history of the project.

In this section, you will find the release notes for each version we release under this major version. If you are looking for the release notes of previous major versions use the version switcher at the top left of this documentation book. Here is a breakdown of our major version releases.

Version 4.0

We continue to set the foundations of an HQ service with the addition of ColdBox 7 support, new collectors, performance optimizations, slowest transactions, and much more.

Version 3.0

This was a complete rewrite of the module to support standalone capabilities and the foundation of the upcoming CBDebugger HQ.

We migrated the entire UI to leverage AlpineJS and ColdBox Elixir and set the foundation of the new upcoming UI rewrite.

Added SQL support for ORM and Adobe queries with IDE integrations.

Version 2.0

A movement to modern engines and a streamlined UI for inclusion in all applications. REST Application support was added alongside ColdBox 6 support.

Version 1.0

The initial release.

Introduction

The ColdBox Debugger module is a lightweight performance monitor and profiling tool for ColdBox applications.

Your new best friend!

Welcome To The ColdBox Debugger Module

The ColdBox Debugger module is a lightweight performance monitor and profiling tool for ColdBox applications. It can generate a nice debugging panel on every rendered page or a dedicated visualizer to make your ColdBox application development nicer, more funner and greater! Yes, funner is a word!

ColdBox Debugger
Request Inspector

Capabilities

The ColdBox Debugger tracks your requests, whether Ajax, traditional, or REST, its environment, execution, etc. Here is a listing of some of the capabilities you get with the ColdBox Debugger:

  • Track all incoming requests to your applications

  • Track exceptions and execution environment

  • Track incoming HTTP requests, parameters, body, and much more

  • Track final request collections

System Requirements

  • Lucee 5+

  • ColdFusion 2018+

  • ColdBox 6+

Versioning

ColdBox Debugger is maintained under the guidelines as much as possible. Releases will be numbered in the following format:

And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)

  • New additions without breaking backward compatibility bumps the minor (and resets the patch)

  • Bug fixes and misc changes bump the patch

License

Apache 2 License: ​

Important Links

  • Source:

  • ForgeBox:

  • Community:

  • Issues:

Professional Open Source

This module is professional open-source software backed by offering services like:

  • Custom Development

  • Professional Support & Mentoring

  • Training

  • Server Tuning

HONOR GOES TO GOD ABOVE ALL

Because of His grace, this project exists. If you don't like this, then don't read it, it's not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God." Romans 5:5

​

What's New With 4.0.0

2022-NOV-22

Added

  • ColdBox 7 support

  • New TimerDelegate

that can be used to add timer functions to any model
  • 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

  • Fixed

    • 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

    Changed

    • 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

    What's New With 4.1.0

    2023-04-17

    Added

    • New github actions

    • Donot enable debugger in testing mode

    Track Hibernate and cborm queries, criteria queries, and session stats

  • Track qb and quick queries, entities, and stats

  • Tap into LogBox via our Tracer messages and discover logging on a per-request basis

  • Profile execution and results of ANY model object

  • Profile execution of ANY ColdBox interception point

  • Custom Timer helpers for adding timing methods and annotations anywhere in your code

  • Profile your production or development apps with ease

  • Track ColdBox modules and lifecycles

  • Track Hyper HTTP/S calls

  • Track Adobe ColdFusion Queries (ColdFusion 2018+)

  • Track Lucee Queries

  • Changelog: https://github.com/coldbox-modules/cbdebugger/blob/development/changelog.md

    Security Hardening

  • Code Reviews

  • Much More

  • Semantic Versioning
    http://www.apache.org/licenses/LICENSE-2.0
    https://github.com/coldbox-modules/cbdebugger
    https://www.forgebox.io/view/cbdebugger
    https://community.ortussolutions.com/c/box-modules/cbdebugger/38
    https://ortussolutions.atlassian.net/browse/CBDEBUGGER
    Ortus Solutions, Corp
    www.ortussolutions.com

    About This Book

    Learn more about this book

    The source code for this book is hosted on GitHub: https://github.com/ortus-docs/cbdebugger-docs. You can freely contribute to it and submit pull requests. Ortus Solutions, Corp copyrights the contents of this book and cannot be altered or reproduced without the author's consent. All content is provided "As-Is" and can be freely distributed.

    • The majority of code examples in this book are done in cfscript.

    • The majority of code generation and running of examples are done via CommandBox: The ColdFusion (CFML) CLI, Package Manager, REPL - https://www.ortussolutions.com/products/commandbox

    External Trademarks & Copyrights

    Flash, Flex, ColdFusion, and Adobe are registered trademarks and copyrights of Adobe Systems, Inc.

    Notice of Liability

    The information in this book is distributed “as is” without warranty. The author and Ortus Solutions, Corp shall not have any liability to any person or entity concerning loss or damage caused or alleged to be caused directly or indirectly by the content of this training book, software, and resources described in it.

    Contributing

    We highly encourage contributions to this book and our open-source software. The source code for this book can be found in our GitHub repository where you can submit pull requests.

    Charitable Proceeds

    10% of the proceeds of this book will go to charity to support orphaned kids in El Salvador - . So please donate and purchase the printed version of this book; every book sold can help a child for almost 2 months.

    Shalom Children's Home

    Shalom Children’s Home is one of the ministries that are dear to our hearts located in El Salvador. During the 12-year civil war that ended in 1990, many children were left orphaned or abandoned by parents who fled El Salvador. The Benners saw the need to help these children and received 13 children in 1982. Little by little, more children came on their own, churches and the government brought children to them for care, and the Shalom Children’s Home was founded.

    Shalom now cares for over 80 children in El Salvador, from newborns to 18 years old. They receive shelter, clothing, food, medical care, education, and life skills training in a Christian environment. The home is supported by a child sponsorship program.

    We have personally supported Shalom for over 6 years now; it is a place of blessing for many children in El Salvador who either have no families or have been abandoned. This is a good earth to seed and plant.

    <major>.<minor>.<patch>
    https://www.harvesting.org/

    Author

    Luis Fernando Majano Lainez

    Luis F. Majano

    Luis Majano is a Computer Engineer that has been developing and designing software systems since the year 2000. He was born in San Salvador, El Salvador in the late 70’s, during a period of economical instability and civil war. He lived in El Salvador until 1995 and then moved to Miami, Florida where he completed his Bachelors of Science in Computer Engineering at Florida International University. Luis resides in Houston, Texas with his beautiful wife Veronica, baby girl Alexia and baby boy Lucas!

    He is the CEO of Ortus Solutions, a consulting firm specializing in web development, ColdFusion (CFML), Java development and all open source professional services under the ColdBox and ContentBox stack. He is the creator of ColdBox, ContentBox, WireBox, MockBox, LogBox and anything “BOX”, and contributes to many open source ColdFusion/Java projects. You can read his blog at

    Luis has a passion for Jesus, tennis, golf, volleyball and anything electronic. Random Author Facts:

    • He played volleyball in the Salvadorean National Team at the tender age of 17

    • The Lord of the Rings and The Hobbit is something he reads every 5 years. (Geek!)

    • His first ever computer was a Texas Instrument TI-86 that his parents gave him in 1986. After some time digesting his very first BASIC book, he had written his own tic-tac-toe game at the age of 9. (Extra geek!)

    Keep Jesus number one in your life and in your heart. I did and it changed my life from desolation, defeat and failure to an abundant life full of love, thankfulness, joy and overwhelming peace. As this world breathes failure and fear upon any life, Jesus brings power, love and a sound mind to everybody!

    “Trust in the LORD with all your heart, and do not lean on your own understanding.” Proverbs 3:5

    He has a geek love for circuits, microcontrollers and overall embedded systems.
  • He has of late (during old age) become a fan of organic gardening.

  • www.luismajano.com

    What's New With 4.2.0

    January 2024

    CBDebugger 4.2 comes action-packed with tons of new features, improvements and bug fixes. Let's check out the major areas of improvement.

    Hyper Collector

    You can now track Hyper http/s requests right in a new panel. It will also aggregate the request's total time, slowest, grouped, and timeline. It also comes with some great options for configuration:

    Lucee SQL Collector

    The ColdBox debugger can now profile any SQL running via Lucee queries. It will provide grouped, timeline, and slowest views as well. However, you must make sure that Lucee is in debugging mode.

    IMPORTANT Please note that to use this feature the engine must have two debugging settings enabled

    You can easily add those to your .cfconfig.json or enable it under the Debugging panel in the Lucee Admin.

    Here are the configuration settings available for it:

    Heap Dump Support

    You now can generate Java heap dumps from the debugger visualizer so you can analyze the heap offline. Great for debugging memory leaks or just system stability.

    New Request Dock

    The request dock has now been cleaned up to only show the request's information and the UI updated for a better and seamless dock UI. The rest of the information has been moved to the visualizer at the /cbdebugger entry point.

    Once you click on the dock, it will expand to show the current request's debugging information.

    Improved SQL/JSON Formatting

    We have added new improvements to visualizing SQL and JSON in the context panels.

    Add Timers Manually

    You can now add timers manually into the tracking facilities via the Timer object's add() method or via the TimerDelegate and the addCBTimer() method.

    You can get access to the Timer object in different ways:


    Release Notes

    Added

    • New HyperCollector so you can now track hyper requests if enabled

    • Timer can now add timers a-la-carte via the add() method

    • TimerDelegate now has a addCBTimer()

    Changed

    • 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

    Improved

    • Updated test harness UI to make it easier to create debugging events

    Fixed

    • 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.

    // Hyper Collector
    hyper    : {
    	enabled         : false,
    	expanded        : false,
    	logResponseData : false,
    	logRequestBody  : false
    }
    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 to any in the debuggerService.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

  • Create a Java Heap Dump
    New Request Dock
    Expanded Dock
    "debuggingDBEnabled":"true",
    "debuggingEnabled":"true",
    luceeSql : {
    	enabled : true,
    	expanded : false,
    	logParams : true
    },
    /**
     * Add a timer to the stack manually. You will need the label, 
     * executionTime and stoppedAt timestamps
     *
     * @label         The label to use as a timer label
     * @executionTime The execution time in ms to register
     * @startedAt     The date time the timer was started
     * @stoppedAt     The date time the timer was stopped
     * @metadata      A struct of metadata to store in the execution timer
     * @parent        An optional parent label
     * @type          The type of execution timed: request, view-render, layout-render, event, renderer
     */
    function add(
    	required label,
    	required executionTime,
    	startedAt       = now(),
    	stoppedat       = now(),
    	struct metadata = {},
    	parent          = "",
    	type            = "timer"
    )
    // Get in your layouts/handlers/views/interceptors
    getInstance( "Timer@cbDebugger" )
    // Inject
    property name="timer" inject="Timer@cbdebugger"
    // ColdBox 7 Delegates
    component delegates="TimerDelegate@cbdebugger"{}
    Harvesting in Spanish - Evangelism With A Heartharvesting.org
    Logo