Understand your Java microservices applications with LiveRecorder 6.10

Understand your Java microservices applications with LiveRecorder 6.10

New Product Release from UndoWe’re pleased to announce the release of LiveRecorder 6.10, with the cheesy codename of Provolone.

We’ve been listening to you and swung into action to deliver new features that will make finding and fixing bugs easier, faster and more productive.

Here’s a changelog summary of what’s new.

Support for stepping backward and forward between the component services in a Java application architected as a set of microservices

LiveRecorder for Java now allows you to go back to any point in a microservices application’s execution history. You can now step backward and forward by source lines or function calls within a single service, but also step backward and forward between the component services at the point that one service calls another.

Java developers can now understand what their whole application did, whereas before they’d only have a narrow view of what a single process did.

To do this, use the new Step Across and Step Across Back buttons to step between the services that comprise a microservice-based application.

  • Step Across jumps to the point in time in another service’s execution history when it received the next API call made by this service.
  • Step Across Back jumps to the point in time in another service’s execution history when it last made an API call to this service.

For example, the screenshot below shows a debug session involving two processes showing the tooltip above the new Step Across button.

LiveRecorder for Java Step Across

As a result of clicking the button, we now switch to the other recorded process and arrive at the target method.

LiveRecorder for Java Target Method

Aligned shell behavior under UDB with that of GDB

UDB now supports shell metacharacters in argument lists when starting applications. The new behavior is equivalent to that of standard GDB. For example:

$ udb --args echo
(udb) run ‘>’
>
(udb)

Improved user experience when debugging inline functions

UDB now has improved support for debugging inline functions. UDB should now step more reliably to inline call sites, and from inline call sites into inline functions. Additionally, breakpoints on inline function call sites will now more reliably leave the program inside the correct function.

Up to 4x faster reverse execution commands in freshly-loaded recordings where less than 15% of the maximum event log size was used

An oversight in our previous release meant that LiveRecorder recordings that used less than 15% of the configured maximum event log size would not save additional snapshots to recordings, meaning that reverse-execution commands would not have seen the expected speed improvement.

In this release, snapshots are saved more frequently, meaning that reverse-execution commands will be faster in a wider range of recordings.

As with the previous release, recordings containing more snapshots will be somewhat slower to save and load, and more system memory will be used while loading and replaying recordings.

If you need to revert to the previous behaviour, please set the following in your environment:

UNDO_save_lr_snapshot_max_interval=$[2**37]

As always, big thanks to our engineering team for shipping yet another release that is set to make debugging less painful than it needs to. If you wish to review the release notes in their entirety, visit https://docs.undo.io.

Learn more about our products

Stay informed. Get the latest in your inbox.