On Mon, Feb 8, 2021 at 5:27 AM RADERMACHER Ansgar via lttng-dev
<lttng-dev@lists.lttng.org> wrote:
>
> Dear all,
>
> having thought a bit more about it, I can see now that nested types are 
> problematic in general: some types in the language need to be mapped to types 
> that match but are not identical, i.e. have likely a different memory layout. 
> This would be problematic for nested types.

Exactly: compound types represent a challenge in general because we
don't know the memory layout details of the user data, so we can't just
copy bytes as is to a CTF data stream.

There are strategies to achieve such a feature in barectf and in
LTTng-UST (similar problem), but implementing and testing them is not on
the roadmap currently.

This is why both barectf and LTTng-UST support basic arrays of
simple/scalar instances (numbers and strings), but not the rest, even if
CTF itself can represent more complex data.

barectf supports nested static arrays [1], but not nested dynamic
arrays.

Hope this helps,

Phil

[1]: https://barectf.org/docs/barectf/3.0/yaml/static-array-ft-obj.html

> Thus, I'm opting for flattening data (with the exception of lists).
>
> Best regards
>
> Ansgar
>
>
> ________________________________
> From: lttng-dev [lttng-dev-boun...@lists.lttng.org] on behalf of RADERMACHER 
> Ansgar via lttng-dev [lttng-dev@lists.lttng.org]
> Sent: Friday, February 05, 2021 22:58
> To: lttng-dev@lists.lttng.org
> Subject: [lttng-dev] [barectf] no nested types?
>
> Hello,
>
> I've generated a config.yaml from type definitions in UML. If the type of a 
> payload field is a UML DataType, the generator produces an associated type 
> alias file with "class = structure" and the contained members.
>
> When I tried to compile the configuration file, I get an error message from 
> barectf:
> `field-type` property: Nested structure field types are not supported
>
> It this really not supported or are there other mechanisms that enable the 
> use of nested types? If not supported, it would be an important restriction 
> which seems to be not prominently documented (in [1], there is a parenthesis 
> "except a structure field type object" but it's easy to miss)
>
> Best regards
>
> Ansgar
>
>
> [1] https://barectf.org/docs/barectf/3.0/yaml/struct-ft-obj.html
>
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev@lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to