DebugLive.com

DebugLive.com is a method of debugging applications remotely through an online debugger. The debugger resides 'in the cloud,' and interacts with the application on the user's desktop to perform common debugging activities such as setting breakpoints, stepping through an application, viewing variable values, and taking and analyzing memory dumps.

DebugLive.com also enables application professionals to work as a team to analyze and debug applications, even from different geographical locations. The online platform provides workspaces that enable access by multiple users logging in from different computers. This concept moves debugging from what has long been a solitary activity into the realm of team-based problem solving. The team might include developers, support engineers, server and network administrators, and testing professionals.

An online debugger extends the concept of "Software as a Service" (SaaS) to the arena of application debugging, traditionally performed by one individual on a single computer.

'''

Description

''' DebugLive.com provides a web-based debugging solution for enterprise software organizations, software developers, support engineers, and other IT professionals. The DebugLive platform offers a full-featured debugging environment for Microsoft Win32 applications, Microsoft.NET applications, and ASP.NET websites. The platform hosts an advanced debugger and other capabilities required to RESOLVE software problems in a browser-based environment.

DebugLive changes the paradigm from traditional stand-alone application debugging to team collaborative, web-based remote debugging of distributed applications in real-time. This increases debugging efficiencies and productivity, which translates to faster problem resolution and significant cost savings.

DebugLive.com summary.

Solving software problems often requires constituents’ involvement across organizational and geographic boundaries. Developers, support engineers and often times customers and end users must work with other software team members to attempt to reproduce, define, diagnose, and resolve a software problem. The current debugging tools provided in today’s IDE’s all lack the live web remoting and collaborative functionality required to address problems in an effective manner. DebugLive addresses these problems and also provides a host of solutions where team members and other stakeholders can collaborate to solve software problems easily and efficiently.

Collaboration requires visualization and organization. Companies spend an enormous amount of time attempting to replicate and resolve software error conditions, and not actually debugging. Waiting for the error to occur, sending long email threads often with inaccurate or missing error details, time zones differences causing additional delays, and expensive travel to the site of the actual application all add to delays in solving the software problem.

Unique to DebugLive is its workspace repository area called ‘Solutions’. A Solution is a debugging ‘project’ and the central location of where team collaboration occurs. The Solution space is where the software error related communication and artifacts (dumps, screenshots, comments, videos etc.) are stored while a team trys to understand and solve the software error condition.

Solutions are accessible to everyone logged-in from the team and resides on the DebugLive server making it easy for team members to stay organized when collaborating on a software problems resolution. DebugLive's web/browser based implementation makes all updates in real time, making it possible for the entire team to see updates to the problem as they are happening regardless of locations or time zone differences.

The Debugger

The DebugLive debugger is functionally similar to Microsoft Visual Studio and WinDBG debuggers making it’s adoption natural in that it works the way users expect it to. It also supports the C, C++ and C# programming languages.

Its debugging features make it a useful tool in the development and testing phases of an application lifecycle as well as for applications in production environments. In cases where multiple locations around the world are part of the problem solving scenario, the live remoting and collaborative features are not available through traditional approaches.

DebugLive is a fully functional debugger, which supports all the necessary features expected from a Windows debugger. As a platform, DebugLive is extensible, so third-parties can create plug-ins (library tools) that extends the feature set of DebugLive.Crash dumps analysis can be debugged. Users can debug on source and disassembly level, inspect memory, values of variables, and set breakpoints. It supports the same symbol formats as Visual Studio and WinDbg (no need to rebuild your applications in some special way) It has the familiar set of user interface elements (like Watch, Memory and Threads windows)

What's different: DebugLive is a hosted, web-based debugger, accessible from any machine via an Internet Explorer or Firefox web browser. No debugging applications to install on local or remote machines needed.

Remote debugging is naturally supported in the DebugLive debugger, allowing users to debug applications on any system remotely, even behind firewalls and proxies, without extra configuration.

DebugLive is more than a debugger; it is a solution oriented platform. You can collect various kinds of troubleshooting information (e.g. crash dumps, log files, performance statistics, configuration files, registry settings, screenshots and video) and organize and share them with other stakeholders in a DebugLive solution.

Other features not present in a typical debugger (can schedule commands for automatic/periodic execution of dumps, email notifications when the debugger needs users attention, etc.).

Collaborative debugging is unique to the DebugLive debugger.

Examples of DebugLive remote debugging include:

  • Teams can debug applications live on any system, anywhere, through firewalls, proxies, or NAT.
  • Teams can capture the state of the remote application in a dump and upload it to DebugLive server, later retrieve the dumps from the server for offline analysis. Users can then share the dump with others through a DebugLive Solution.
  • Teams can explore the configuration of the remote system (Registry, configuration files, SxS cache, Event Log, log files, etc.)
  • Teams can rcord performance statistics like memory usage (no need to explain the user how to use Perfmon)
  • Teams can see what is going on the remote machine via screenshots and video recording features, even when you do not have a remote access application

Additional advantages: Debugging can be done through firewalls and proxies, because communication is HTTP-based, with DebugLive server in between. Debugging is fast even over long distances, because the amount of data passed between the local and remote machines is typically small.

References

  • Andreas Zeller: Why Programs Fail: A Guide to Systematic Debugging, Morgan Kaufmann, 2005. ISBN 1-55860-866-4
  • John Robbins: Debugging Microsoft .NET 2.0 Applications, Microsoft Press, 2006. ISBN 978-0735622029
  • Mario Hewardt and Daniel Pravat: Advanced Windows Debugging, Addison-Wesley, 2007. ISBN 978-0321374462
  • 1 DebugLive.com home page
  • 2 Microsoft WinDbg