GSoC Project | Basic Support for Trace Compass
Ravindra Kumar Meena
rmeena840 at gmail.com
Wed Jun 26 05:01:30 UTC 2019
>
>
> I had a look at the metadata file:
>
> typedef enum events_e : uint64_t_be {
>
Because I am passing the item->event value in big-endian byte order. This
will take passed value in big-endian byte order.
Now metadata trace description is in little-endian
trace {
major = 1;
minor = 8;
byte_order = le;
};
It will instruct babeltrace to read the big-endian value in little-endian.
Hence giving us the correct value.
> Why is it like this? Your structure looks like this:
>
> typedef struct ctf_event {
> uint32_t event_id;
> uint64_t ns;
> uint32_t cpu;
> rtems_record_event event;
> uint64_t data;
> } ctf_event;
If you carefully look at the event structure I defined in metadata.
event {
name = "RTEMS_RECORDING_EVENT";
id=0;
fields := struct {
timestamp_t ns;
uint32_t cpu;
rtems_record_event events;
uint64_t data;
};
};
I have defined id=0 here. This instructs babeltrace that new event has
begun and from this point, there will be four values (ns, cpu, events,
data).
Once the babeltrace has read the last value(data). It will again see event
id equal 0 stating that new event has begun and again it will read four
values.
It will become more clear if you see the generated trace in HEX format. I
used Ghex software for the same.
--
*Ravindra Kumar Meena*,
B. Tech. Computer Science and Engineering,
Indian Institute of Technology (Indian School of Mines)
<https://www.iitism.ac.in/>, Dhanbad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190626/8441fffb/attachment.html>
More information about the devel
mailing list