* Alexandre Montplaisir ([email protected]) wrote: > (It seems LTTV can't let go of me...) > > I was trying to reinstall TMF, which includes the compilation of LTTV > with "./configure --with-jni-interface". However, make was now getting > build errors: > > jni_interface.c: In function > ‘Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getOffset’: > jni_interface.c:1005: error: ‘struct marker_field’ has no member named > ‘offset’ > jni_interface.c: In function > ‘Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getSize’: > jni_interface.c:1012: error: ‘struct marker_field’ has no member named > ‘size’ > jni_interface.c: In function > ‘Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1printMarkerField’: > jni_interface.c:1049: error: ‘struct marker_field’ has no member named > ‘offset’ > jni_interface.c:1050: error: ‘struct marker_field’ has no member named > ‘size’ > jni_interface.c: In function > ‘Java_org_eclipse_linuxtools_lttng_jni_JniParser_ltt_1getParsedData’: > jni_interface.c:1134: error: ‘struct marker_field’ has no member named > ‘offset’ > > > > Me and Michael were getting the same problem. Sun-java, openjdk gcj so > were all giving the same errors. We ended up doing a git bisect, which > gave the following commit as being responsible: > > 1184dc37d4cee465b9888fcec352c4ebe86d4246 is the first bad commit > commit 1184dc37d4cee465b9888fcec352c4ebe86d4246 > Author: Mathieu Desnoyers <[email protected]> > Date: Fri Aug 20 12:02:42 2010 -0400 > > ltt traceread: fix offsets calculation, should be per tracefile > > Signed-off-by: Mathieu Desnoyers <[email protected]> > > :040000 040000 b655cf92cab4b1a11f4000e27663426da1e1d1dd > 4e660bf0e8d8ad2ff0262e1c3223490d3f400178 M ltt > > > I'll look into it this afternoon, but I suppose the changes in that > commit were made for a reason, so I'm not too confident touching it.
Yeah, the library should be the only one knowing about the struct marker offset/size fields, this is why I renamed them. The problem is that the validity of this information is only while a given event is read. As soon as the application reads events with same ID in other tracefiles belonging to the same trace, it can overwrite the marker fields offsets/sizes. This was causing a bug in LTTV. The application (lttv/tmf) should use the proper interface to access the current event fields/offsets: ltt_event_field(). Thanks, Mathieu > > Thanks, > Alexandre > > > ps. On a side note, it seems building liblttvtraceread with OpenJDK > still works with TMF, so there might be hope for a liblttvtraceread-jni > package after all... > > _______________________________________________ > ltt-dev mailing list > [email protected] > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ ltt-dev mailing list [email protected] http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
