Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Trace Compass » Help non-Linux/non-Java embedded C developer make use of Trace Compass
Help non-Linux/non-Java embedded C developer make use of Trace Compass [message #1794462] Thu, 30 August 2018 21:27 Go to next message
Buck Fobb is currently offline Buck FobbFriend
Messages: 2
Registered: August 2018
Junior Member
Hi all

I'm developing C on bare metal ARM Cortex (M3) with a very basic custom OS (no Linux) and am attempting to make use of Trace Compass to trace thread states (very very basic threading), specific finite state machines in the code, call stacks (well, instrumented call enter/exit sequence - not full stack - for short sections of executing code to look for optimizations), etc. TC seems like it could be a great boon to us bare metal developers, if I could figure it out. I'm not a Linux or Java developer, so I'm trying to figure out how to bend TC to my will.

I'm successfully putting basic trace info (event timestamp + test events like ThreadRun, ThreadStop, etc.) into CTF and getting Eclipse to import it. I can see the list/table of events and event contents. However the trace views (call graph analysis, critical path, etc.) don't populate like hope. I'm guessing this is because these are tailored for Linux/LTTng and I'm not presenting info in a format it understands. I've also tried to implement custom xml per the "Data driven analysis" in the Trace Compass User's Guide using xml but not having a ton of success. Not knowing what's going on inside Trace Compass it is difficult to know what the elements and attributes do.

Are there any tutorials geared toward me: bare metal embedded guy (non-Linux/Java) who wants to make use of Trace Compass?

Thanks for any help.
Re: Help non-Linux/non-Java embedded C developer make use of Trace Compass [message #1794506 is a reply to message #1794462] Fri, 31 August 2018 15:04 Go to previous message
Matthew Khouzam is currently offline Matthew KhouzamFriend
Messages: 6
Registered: March 2011
Junior Member

Hey, welcome on board.

A couple of things:

1- Our response time in the mailing list is a bit better typically ( It is much better on IRC.

2- We worked a lot on getting things working well in the kernel. For a simpler trace, maybe making it mimic BTF or trace event in JSON could speed up your dev cycle.

In BTF you have a text file described here:

Trace event in JSON is described here:

Let's talk about the example views you picked:
Critical path depends on a kernel trace at the moment. You can fake it since you have threads.
Call Graph needs a flame chart. A flame chart shows entry/exits, not threads. but it is sorted by threads.

If you want a call graph to be filled, you need to have entry events, exit events and Thread ID (TID) discriminators.

I can see a control flow view being easily populated. As well as a resources view.

They both need "IRQ entry exits" Sched switch (thread start and stop with a core and TID will work).

If you share your trace, we can help more!

Previous Topic:Resource Leak exception in tmf.ui plugin with trace compass 3.3.0
Next Topic:XML state provider for generic CTF
Goto Forum:

Current Time: Wed Nov 14 23:34:25 GMT 2018

Powered by FUDForum. Page generated in 0.01679 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top