2020 >
Using Visual Trace Diagnostics to Uncover Hidden Issues
Dr. Johan Kraft - Percepio- Watch Now - Duration: 25:25
Embedded IoT software is often multi-threaded, event driven, and resource-constrained. This increases the difficulty of IoT software development and calls for better means for debugging, beyond the limited scope of traditional debugging tools.
Software event tracing can improve IoT software development by providing a timeline of the overall software activity. This is very useful information for debugging, profiling and for finding software design flaws. Tracing can be performed entirely in software and remain active over long durations. It can even be used in deployment.
However, tracing produces lots of repetitive data. When debugging, you need to find a small number of anomalies. This can be like searching for needles in a haystack.
The human brain is visual and excels at pattern recognition. Visual trace diagnostics makes it possible to leverage this capability to make the anomalies stand out. This builds on software event tracing, but refines the data into a rich, meaningful model and visual overviews that makes it easy to spot anomalies. The result is quick, intuitive comprehension, even for large traces. This approach is invaluable in system-level debugging and for finding software design flaws.
Join Dr. Johan Kraft as he explores visual trace diagnostics and presents real-world examples of its use in locating and solving hidden software issues.
Hi Nathan,
Thanks. Well, for streaming you need some kind of channel to get the data out. But this can be an existing I/O interface with spare capacity, like ethernet, wifi or USB.
Regarding your second question, streaming may also reduce overhead compared to snapshot, at least if you have a really fast streaming interface. Live visualization is another advantage, that can be enabled by fast streaming support.
/Johan
Hi Johan,
2 questions:
- without special hardware how can the event capture be so quick (microseconds?)??
- I noticed your example was in the STM32CubeIDE (using an STM32L4). Does your tool operate fully in that environment? Is there a demo that would run on an STM32 demo board (I have an 32L4R9IDISCOVERY)??
Thanks. Clever stuff.
- It depends on the mode, but in snapshot mode, the data only needs to be copied to a ring buffer in RAM. That is pretty fast. If you compare with a printf, there is a lot of formatting that needs to happen and the serial output is usually limited to 115 Kbps. For streaming we first copy it to a temporary RAM buffer, like in snapshot mode, and then have a periodic task that flushes the data to a fast channel, like e.g. 100 Mbps Ethernet or fast debug probe with 10+ MHz transfer speed. If you have a really fast debug probe, like an Arm Keil ULINKplus, it is also possible to omit the temporary buffer and stream directly.
- Yes. Most IDEs can be used. It is mostly dependent on the RTOS. We have some STM32 demo projects available at https://percepio.com/example-projects/
Thanks Boban
Apart from Windows it also runs on Linux, but not yet Mac.
/Johan
Excellent and very useful presentation. Is Tracealyzer available only for Windows or other OSs as well (MacOs, Linux)?
Thank you for your presentation, it was very useful.
You mentioned that Tracealyzer doesn't rely on any hardware. Is this for the trace buffering mode only, but to get streamed trace data, trace hardware is required? Are there any other additional advantages to having suitable hardware besides the quantity of trace data which may be collected?
Thank you.
Thanks Carl!
well done and clear
I'm available here in case you have any questions. Or you can join the live Q&A session on Zoom afterwards.
Thank you, I appreciate the presentation!