Debug Stream Tools - Timesaving, Affordable and Modern Diagnostic System applied to Real-time and Mobile Cross-platform Software Development

A paradigm shift – from hard work in a lab to brainy and productive work in a cabinet

Debug Stream Tools is a robust cross-platform logging toolkit, which aids in analysis and development during all software lifecycle stages:

Where it is applicable

The idea

To provide a real-time developer with flexible and multifunctional tools for tracing, debugging and application flow analysis. DS tools consists of three distributed components: DS-Agent, DS-Daemon and DS-Viewer.

DS-Agent is a library written on C++ for implanting into a target software. DS-Agent’s goal is to collect log messages from different application processes/threads/drivers and to send them to DS-Server over UDP or TCP.

  1. Multi-core/multi thread support
  2. Has convenient API for implanting log messages into a source code
  3. Works with a set of user-defined logical Debug Streams
  4. Can be fully disabled at a compilation time
  5. Messages filtering according to severity levels per DS
  6. Routes each DS into different physical ports
  7. Has Client - Server architecture: processes client’s messages in a low priority task
  8. Has duplicate internal buffer for crashes analysis
  9. Supports DS protocol over UDP and TCP
  10. Contains Embedded profiler

DS-Daemon is a Linux/Windows service for collecting DS messages sent from number of DS-Agents.

  1. Works as a resident service
  2. Collects DS logs from many targets
  3. Stores all DS messages in reliable SQL DB
  4. Resends online traffic to the registered On-line GUI clients
  5. Processes queries from different Off-line GUI clients
  6. Detects new target’s sessions and separates one session from another
  7. Can trigger external modules by certain conditions (e.g. to send e-mail after specific message)

DS-Viewer is a multifunctional front-end GUI application running on Linux or Windows PC. It grants to a developer of an embedded software many useful features, dramatically increasing his performance.

  1. Has Tabbed GUI, multiple monitors supported
  2. Three modes of work: Query mode and Online/Offline modes
  3. Table view
    • Field choosing
    • Colorizing
    • Select / Highlight / Filter records
    • Find dialog with simple and complex SQL conditions
  4. Graph view
    • Zoom in/out
    • Regions select
    • Sync current positions and selections, bookmarks between graph and table views
    • Jump to nearest bookmarks / selections
  5. Function Chains view
  6. Comparing two Table views
  7. Importing/Exporting to PDF/XLS/CSV
  8. Generating reports: Sequence Diagrams, Profiling
  9. Ability to run third-party add-ons for displaying various user’s data visualizations, e.g. State Machines and specific graphics or diagrams.
  10. Can browse in Table and Graph mode (able to colorize, search, etc.) any «foreign» textual log formats (CSV, syslog files, Linux strace, etc.)
  11. Macro-language to process and play with browsed tables; generating user-specific reports.

Additional tools/stuff

  1. DS Auto-integrator: source code analyzer and DS macro generator for automatic integration into existing projects.
  2. Sample Perl and C# scripts implementing simple DS-Daemon