Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Trace Compass » Cross Platform Analysis(Looking for a way to view ARM64 traces on a X64 linux and Windows platform(s))
Cross Platform Analysis [message #1854415] Wed, 17 August 2022 20:23 Go to next message
Tab Mong is currently offline Tab MongFriend
Messages: 2
Registered: August 2022
Junior Member
Hello,

Looking for a setup to analyze traces that were captured on an ARM64 ELF embedded target on X64 Linux and/or Windows platforms. Our target does not have a display so I am looking to use trace compass to help me analyze the traces. The default load does not understand the ARM elf .so libraries and traces.

Is there plugins that will allow me to view/analyze cross platform?

Thanks.

Tab

[Updated on: Wed, 17 August 2022 21:19]

Report message to a moderator

Re: Cross Platform Analysis [message #1854436 is a reply to message #1854415] Thu, 18 August 2022 13:54 Go to previous messageGo to next message
Bernd Hufmann is currently offline Bernd HufmannFriend
Messages: 9
Registered: April 2015
Junior Member
Yes, it's possible to analyze trace cross platform. Trace Compass is capable to put traces from multiples sources together and analyze them time-ordered. It uses "Experiments" to do that which essentially is a set of traces analyzed together. For each type of trace, Trace Compass needs a parser that converts the trace events from the trace file into an internal representation Java object. Once the internal trace event is created, it can be processed further and useful data can be extracted.

Trace Compass has some built-in trace types supported. It also possible to add custom trace parser. If the trace file is plain text and each trace event can be parsed using a regular expression then the parser can be defined using a parser wizard that is part of Trace Compass application [1]. It's also possible to write a trace parser in Java as part of Trace Compass plugin extension [2]. Alternatively you could convert the trace with an external program to the Common Trace Format (CTF) [3].

The Trace Compass RCP comes with the following built-in trace-types:
- CTF (Common Trace Format)
- LTTng (Linux Tracing Tool tool kit next gen) Kernel and Userspace (also in CTF)
- BTF (= Best Trace Format)
- GDB Tracpoint (only limited support)

Through the Trace Compass incubator project users can install the following trace types:
- Linux Ftrace
- UFTrace
- Google's Trace Event
- Jaeger Open Tracing
- and more

With each trace type comes a parser, some built-in views and some trace-type specific views. It's possible to add custom analysis and views for your domain specific logic. See presentation for some more details about that [4].

I hope this gives you some pointers to get started.

BR,
Bernd

[1] https://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.user/Trace-Compass-Main-Features.html#Custom_Parsers
[2] https://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.dev/Implementing-a-New-Trace-Type.html#Implementing_a_New_Trace_Type
[3] https://diamon.org/ctf/
[4] https://www.eclipsecon.org/europe2019/sessions/easely-extending-eclipse-trace-compass
Re: Cross Platform Analysis [message #1854437 is a reply to message #1854436] Thu, 18 August 2022 14:06 Go to previous messageGo to next message
Tab Mong is currently offline Tab MongFriend
Messages: 2
Registered: August 2022
Junior Member
Hello Bernd,

Thank you for the quick response. This information is very helpful.

I spent sometime last night to try and understand the issue. The traces are produced by LTTNG but on the ARM64. They load up into the tool as expected. It reads the log file fine but does not interpret the rest of the files properly.

Based on my examination of the file formats, they seem to be binary even though they have a lot of text intermixed in the files. The text that I see are the tasks and markers of my running system so it looks very familiar. My assumption is that this a big endian/little endian issue, so I was wondering if there was a option to save them in a known format or a converter to go between the two formats?

Attached is capture of the tool after trying to load the traces.

Thanks.

Tab

[Updated on: Thu, 18 August 2022 14:13]

Report message to a moderator

Re: Cross Platform Analysis [message #1854689 is a reply to message #1854437] Fri, 02 September 2022 13:32 Go to previous message
Bernd Hufmann is currently offline Bernd HufmannFriend
Messages: 9
Registered: April 2015
Junior Member
Hi Tab,

If the traces are produced by LTTng then Trace Compass supports them by default. LTTng traces are in CTF, which is a directory with metadata describing the trace content and binary with actual binary trace data. The CTF parser in Trace Compass is able to handle traces in big endian/little endian. If you are allowed to share the trace then we could have look to see if it opens correctly.

Looking at the screen hot it looks like the trace is a User Space trace (UST). The events table seems to be populated. For UST only certain views are available by default because the UST tracepoints are application specific. By default, you see the Events Table, Statistics View/Event density and Histogram. You can also use the Filter view or Color view for highlighting events in the table. If the application was compiled with gcc's finstrument-functions and the tracer started with pre-loading a specific lib, you will see the Flame Chart, Flame Graph and function duration statistics etc populated as well. Similar feature exists for memory analysis. See [1] for LTTng-UST analysis available and how to make them work, [2] is about tracing function entry/exit and [3] about memory analysis.

The view Control Flow view or Resources view are populated for LTTng kernel traces, that why they are currently empty. You need collect the kernel trace with LTTng as well. If you add kernel and UST trace in one "Experiment" and open it, then you can see them together and in table the events are interleaved.

Best Regards
Bernd

[1] https://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.user/LTTng-UST-Analyses.html#LTTng-UST_Analyses
[2] https://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.user/LTTng-UST-Analyses.html#Using_the_Flame_Chart_View_with_LTTng-UST_traces
[3] https://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.user/LTTng-UST-Analyses.html#Memory_Usage
Previous Topic:Create a new trace type
Next Topic:How to set PTID in Trace Compass
Goto Forum:
  


Current Time: Fri Apr 26 20:09:04 GMT 2024

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

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

Back to the top