In his recent article, Rustam Nurgudin mentioned that we are currently working on The Welkin Suite’s Retrospective Debugger. What he did not point out was how much effort we are actually putting into developing this tool, and this February even the water cooler talk is focused on the Debugger. So let’s take a closer look at this upcoming feature.
The Welkin Suite’s Retrospective Debugger does not use ‘Apex Interactive Debugger’ -- instead, all the information is received from the Debug Logs with the highest detalization levels -- Finest and Fine. So what is so cool about our Debugger:
- Unlike ‘Apex Interactive Debugger’, the Retrospective Debugger is free
- There’s no need to resort to any additional Salesforce services
- You are no longer limited by your org type -- you can run the debugger even if you have a Production org
Using the Debug Logs allows you to receive lots and lots of information about the execution of your code, as well as about various processes in the org, namely:
- Which strings of code were executed
- All methods and constructors calls
- Initialization and value assignment to variables, including objects with lists
- Memory allocation in Heap
All the details concerning the execution of validation, workflow, flow, Process Builder’s processes, and a number of other elements.
By analyzing the aforesaid information, as well as by filtering off the unnecessary data, and using the information we receive via analysis of the source code, the Retrospective Debugger gives a great set of functions, such as:
- An option to run through the entire execution context step-by-step in your code, by simply using ‘Step Next’, ‘Step In’, ‘Step Out’ functions
- A possibility to set an unlimited number of breakpoints in your code to cut off unnecessary code parts and, as a result, increase the speed of debugging
- Unlike regular debuggers, which only allow navigating forward in the execution context, our debugger also allows you to go back, in case you missed some necessary point
- An option to display all local and static variables with their values at each moment in time
- A possibility to display the call stack with an option to quickly switch between calls
- And much more!
Another great thing you receive when using Debug Logs instead of ‘Apex Interactive Debugger’ is having virtually no limitations for ways you can launch the debugging process, and the time at which you can start debugging:
- You can debug any unit test
- You can debug undefined Anonymous Apex code
- You can debug the processes that took place during or after your actions in the Salesforce UI
- You can debug the processes that took place in your Production org earlier, having only the logs and the current version of the code. No need to reproduce these ‘strange situations’ in your Sandbox.
Naturally, this is no more than the mere tip of the iceberg, which we would like to call The Welkin Suite’s Retrospective Debugger. Over the next few weeks, we will be going through the things our Retrospective Debugger will allow you to do, and taking a closer look at the situations, in which it may and will come in handy.