Resources
How to debug remotely
Since the Covid pandemic, many engineering teams are continuing to work remotely and travel remains limited. So how do you continue to provide first-class support to customers when they report a bug in production? How do your engineers troubleshoot software failures and resolve them remotely?
Traditional production troubleshooting
Previously, your debugging workflow might have looked like this:
- Get initial description of problem from customer
- If issue cannot be resolved remotely, send Field Application Engineer (FAE) or developer on customer site
- FAE or dev reviews issue, using artifacts such as logs or core dumps
- If issue cannot be resolved at this point, an R&D engineer is assigned
- Logs, core dumps and/or other information is fed back to the R&D engineer for debugging
- R&D engineer makes a new build containing a speculative fix based on the limited information available and waits for feedback from customer
- FAE or dev deploys the new build at the customer site
- Depending on customer feedback, the issue is resolved or another iteration of the workflow takes place
- FAE or dev confirms fix has resolved the issue and closes support ticket
The guesswork that needs to be spent on speculative bug fixing of this kind is time-consuming and frustrating for everyone involved.
A new world order with time travel debugging
In the new world, it can be difficult to send engineers on customer sites. So how are engineers meant to diagnose and resolve production issues if they can’t access the live environment?
Time travel debugging offers a solution. Imagine a CCTV camera recording an event. You don’t have to be in the same place at the same time as the recorded event to see what happened. A recording file is produced which can be subsequently replayed and reviewed to figure out what happened. Learn more about time travel debugging.
Undo’s LiveRecorder brings time travel debugging capabilities to development, test, and production, making bugs 100% reproducible.
Remote debugging with LiveRecorder
LiveRecorder captures the failed process for offline replay. This recording is:
- portable, shareable and can be replayed on a different computer – away from the customer production environment
- an automatic reproduction of the failure that can be analyzed and debugged remotely
Here is how it works when LiveRecorder is embedded into your product when you deploy:
- When things go wrong in production, ask your customer to activate LiveRecorder to capture the failed process inside a recording and send you the file (note: the recording serves as a standalone reproducible test case)
- The customer sends you the recording file for you to replay the original environment and debug
- After analyzing the recording by stepping forwards and backwards in the code execution, you can determine the root cause of the issue, develop a fix, and deploy that fix!
- Go get yourself a well-deserved coffee and get on with developing the feature you were working on before you got interrupted.
With a recording in hand, engineers don’t have to waste time trying to reproduce the problem. The recording can be debugged remotely from the comfort of their home/office. Once the failed process is recorded, engineers can relive the defect – without impacting the live environment.
LiveRecorder enables engineering teams to debug remotely and debug faster than with traditional debugging methods – allowing business to continue for both software vendors and their customers.