Hi All,
We’ve been using Trace Compass as a plugin since a few years back for capturing debugger traces from ARM chipsets.
[Bernd Hufmann] Great to hear!
To set the context, we have both BareMetal setup and embedded Linux boards using dedicated trace hardware probes such as Lauterbach or Segger J-Link. These systems produce large amount of dataset at very high speed.
So far CTF + Trace Compass work well for offline analysis. However we would like to have Live view (as in live plotting) ability from a subset of trace data.
After looking at the way TMF reads CTF data as an example, it needs the whole dataset or frame for the views to start working. Please correct me if I am wrong.
[Bernd Hufmann] It's not entirely correct. Trace Compass is able to visualize data while the trace is being read and analyzed.
Initially, we had the intention to support streaming to live update each view when new data arrives. We experimentation with that in the framework and some of the code is still there. The TmfTraceRangeUpdatedSignal
was used to trigger the analysis for the arrived trace events. Also, there was a streaming interval (see ITmfTrace#getStreamingInterval) which was used to check periodically if new data has arrived. The source code for streaming is in the code base, but not
used and and maintained.
In our project we also realized that updating views that show information with nanosecond resolution (e.g. Linux Control Flow view) is hard to follow and is not really useful. Instead, it would be better to have
Looking for suggestions on using live trace streaming in Trace Compas please.
Should we invest in custom views, independent from Trace Compass, to capture live data and leave the Trace Compass for offline analysis, or looking at streaming capabilities in trace compass?
[Bernd Hufmann] In our project we realized that updating views that show information with nanosecond resolution (e.g. Linux Control Flow view) is hard to follow
and is not really useful for the end user. Instead, it would be better to have dedicated monitoring views that follow certain characteristics, summaries, aggregations etc. and highlight any problems in the application being traced. If such a problem found,
then the monitoring view is able to provide the time range of interest and the "standard" Trace Compass views can be used to analyze the data offline. We think that this would be good workflow for the end user.
So, to sum-up, there is some ground work available in Trace Compass to do streaming which would need to be revived if certain existing view should be updated live.
Alternatively, dedicated streaming views could be added to monitor certain characteristics. Btw, for the latter it would interesting to have support in the framework that could be extended for different data and traces.
Thanks,
Phyo Kyaw