X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.cpp;fp=src%2Fbin%2Flttng-sessiond%2Fust-app.cpp;h=11d604ea9a463e7c32126b5189e46707e74f7ce1;hp=8addb5edacabb5bd9ed2397ab81f276cf5b078fb;hb=b6bbb1d666531bf061f29884da1b0d7c10f59aa0;hpb=88277a52069ed0135254ce29da617ebb6ecddbb8 diff --git a/src/bin/lttng-sessiond/ust-app.cpp b/src/bin/lttng-sessiond/ust-app.cpp index 8addb5eda..11d604ea9 100644 --- a/src/bin/lttng-sessiond/ust-app.cpp +++ b/src/bin/lttng-sessiond/ust-app.cpp @@ -7895,3 +7895,30 @@ error: rcu_read_unlock(); return ret; } + +lsu::ctl_field_quirks ust_app::ctl_field_quirks() const +{ + /* + * Application contexts are expressed as variants. LTTng-UST announces + * those by registering an enumeration named `..._tag`. It then registers a + * variant as part of the event context that contains the various possible + * types. + * + * Unfortunately, the names used in the enumeration and variant don't + * match: the enumeration names are all prefixed with an underscore while + * the variant type tag fields aren't. + * + * While the CTF 1.8.3 specification mentions that + * underscores *should* (not *must*) be removed by CTF readers. Babeltrace + * 1.x (and possibly others) expect a perfect match between the names used + * by tags and variants. + * + * When the UNDERSCORE_PREFIXED_VARIANT_TAG_MAPPINGS quirk is enabled, + * the variant's fields are modified to match the mappings of its tag. + * + * From ABI version >= 10.x, the variant fields and tag mapping names + * correctly match, making this quirk unnecessary. + */ + return v_major <= 9 ? lsu::ctl_field_quirks::UNDERSCORE_PREFIXED_VARIANT_TAG_MAPPINGS : + lsu::ctl_field_quirks::NONE; +} \ No newline at end of file