[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tracecompass-dev] Question regarding CallStackView changes for trace Compass 4.1

I've made a number of changes to my plugin code in order to update to Trace Compass 4.1 from Trace Compass 3.1. I've updated my code to use replacement classes in org.eclipse.tracecompass.analysis.profiling* and tried to model after the example Gerrit patch you sent me a link to. At this point I can load my trace and have it appear in my trace timeline view that I now extend from FlameChartView instead of CallStackView. The trace appears to display correctly and the work remaining for me seems to be mainly changes to my classes extending CallStackDataProvider and FlameGraphPresentationProvider.

One problem I ran into is that I am getting a few exceptions logged with long tracebacks ending with

Caused by: java.lang.NoClassDefFoundError: org/eclipse/tracecompass/internal/provisional/tmf/core/model/tree/ITmfTreeDataProvider
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
... 150 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.tracecompass.internal.provisional.tmf.core.model.tree.ITmfTreeDataProvider cannot be found by org.eclipse.tracecompass.lttng2.ust.core_3.3.0.201803071910
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.lang.ClassLoader.loadClass(Unknown Source)

I think I am missing a dependency on some Trace Compass plugin, but not sure what. If I look at Trace Compass 4.1 source I find ITmfTreeDataProvider only defined in org.eclipse.tracecompass.tmf.core.model.tree so I'm not sure how I am getting the reference to a plugin in org.eclipse.tracecompass.internal.provisional.tmf.core.model.tree. I also don't directly reference the org.eclipse.tracecompass.lttng2.ust.core anywhere in my source, which I checked by using the Eclipse file search menu option.

I've obviously done something wrong, but not sure what.

Everything in my Eclipse workspace builds cleanly. I use a target definition file in my workspace and that's set to refer to download.eclipse.org/tracecompass/releases/4.1.0/repository

One thing I did differently from the example code link you sent me is that my analysis module classes extend org.eclipse.tracecompass.analysis.profiling.core.callstack.CallStackAnalysis instead of org.eclipse.tracecompass.internal.lttng2.ust.core.callstack.LttngUstCallStackAnalysis but that seemed like a reasonable thing to do.

Any suggestions?