--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.internal.lttng2.ust.core.trace.layout;
+
+/**
+ * Updated event definitions for LTTng-UST 2.9.
+ *
+ * @author Alexandre Montplaisir
+ */
+@SuppressWarnings("nls")
+public class LttngUst29EventLayout extends LttngUst28EventLayout {
+
+ /**
+ * Constructor
+ */
+ protected LttngUst29EventLayout() {}
+
+ private static final LttngUst29EventLayout INSTANCE = new LttngUst29EventLayout();
+
+ /**
+ * Get a singleton instance.
+ *
+ * @return The instance
+ */
+ public static LttngUst29EventLayout getInstance() {
+ return INSTANCE;
+ }
+
+ // ------------------------------------------------------------------------
+ // Library load/unload events
+ // ------------------------------------------------------------------------
+
+ /*
+ * With LTTng 2.9, it is now recommended to use the load/unload events
+ * instead of the dlopen/dlclose ones to track libraries loading and
+ * unloading into the process space. The library now does the reference
+ * counting for us. The event fields are exactly the same.
+ *
+ * See https://bugs.lttng.org/issues/1035 and related commits.
+ */
+
+ @Override
+ public String eventDlOpen() {
+ return "lttng_ust_lib:load";
+ }
+
+ @Override
+ public String eventDlClose() {
+ return "lttng_ust_lib:unload";
+ }
+
+ @Override
+ public String eventDlBuildId() {
+ return "lttng_ust_lib:build_id";
+ }
+
+ @Override
+ public String eventDlDebugLink() {
+ return "lttng_ust_lib:debug_link";
+ }
+
+}
import org.eclipse.tracecompass.internal.lttng2.ust.core.trace.layout.LttngUst20EventLayout;
import org.eclipse.tracecompass.internal.lttng2.ust.core.trace.layout.LttngUst27EventLayout;
import org.eclipse.tracecompass.internal.lttng2.ust.core.trace.layout.LttngUst28EventLayout;
+import org.eclipse.tracecompass.internal.lttng2.ust.core.trace.layout.LttngUst29EventLayout;
import org.eclipse.tracecompass.lttng2.ust.core.analysis.debuginfo.UstDebugInfoBinaryAspect;
import org.eclipse.tracecompass.lttng2.ust.core.analysis.debuginfo.UstDebugInfoFunctionAspect;
import org.eclipse.tracecompass.lttng2.ust.core.analysis.debuginfo.UstDebugInfoSourceAspect;
if (TRACER_NAME.equals(tracerName)) {
if (tracerMajor >= 2) {
- if (tracerMinor >= 8) {
+ if (tracerMinor >= 9) {
+ return LttngUst29EventLayout.getInstance();
+ } else if (tracerMinor >= 8) {
return LttngUst28EventLayout.getInstance();
} else if (tracerMinor >= 7) {
return LttngUst27EventLayout.getInstance();