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:
- SW Design
- Debugging & Testing
- Maintenance
- Reverse Engineering
Where it is applicable
- Embedded software
- Device drivers
-
All type of applications:
- C / C++
- Java
- C#
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.
- Multi-core/multi thread support
- Has convenient API for implanting log messages into a source code
- Works with a set of user-defined logical Debug Streams
- Can be fully disabled at a compilation time
- Messages filtering according to severity levels per DS
- Routes each DS into different physical ports
- Has Client - Server architecture: processes client’s messages in a low priority task
- Has duplicate internal buffer for crashes analysis
- Supports DS protocol over UDP and TCP
- Contains Embedded profiler
DS-Daemon is a Linux/Windows service for collecting DS messages sent from number of DS-Agents.
- Works as a resident service
- Collects DS logs from many targets
- Stores all DS messages in reliable SQL DB
- Resends online traffic to the registered On-line GUI clients
- Processes queries from different Off-line GUI clients
- Detects new target’s sessions and separates one session from another
- 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.
- Has Tabbed GUI, multiple monitors supported
- Three modes of work: Query mode and Online/Offline modes
-
Table view
- Field choosing
- Colorizing
- Select / Highlight / Filter records
- Find dialog with simple and complex SQL conditions
-
Graph view
- Zoom in/out
- Regions select
- Sync current positions and selections, bookmarks between graph and table views
- Jump to nearest bookmarks / selections
- Function Chains view
- Comparing two Table views
- Importing/Exporting to PDF/XLS/CSV
- Generating reports: Sequence Diagrams, Profiling
- Ability to run third-party add-ons for displaying various user’s data visualizations, e.g. State Machines and specific graphics or diagrams.
- Can browse in Table and Graph mode (able to colorize, search, etc.) any «foreign» textual log formats (CSV, syslog files, Linux strace, etc.)
- Macro-language to process and play with browsed tables; generating user-specific reports.
Additional tools/stuff
- DS Auto-integrator: source code analyzer and DS macro generator for automatic integration into existing projects.
- Sample Perl and C# scripts implementing simple DS-Daemon