Hi Mathieu, I think the addition of per-tracepoint format strings and the addition of "loglevel" information to the tracepoint API would both be very helpful as it will make it easier to migrate from and integrate with many existing software instrumentation APIs.
How would the %s format specifier in the format string be handled? E.g. would its use be restricted to referencing constant strings (i.e. where the field associated with the %s specifier would be logged as an integer value containing the address of the string, which the host-side software would be able to use to look up the text associated with the string by reading the metadata or the ELF file for the application) or is the intent to support dynamically allocated strings of arbitrary length (e.g. by rendering the string on the target before logging the event)? Regards, Brian Cruickshank Texas Instruments -----Original Message----- From: Mathieu Desnoyers [mailto:[email protected]] Sent: Wednesday, August 31, 2011 12:37 PM To: [email protected]; Nils Carlson Subject: [ltt-dev] [RFC] New UST 2.0 Tracepoint Event API : TRACEPOINT_FORMAT Hi, I've been informed that support for a per-tracepoint format string would be welcomed by many. I would prefer not to make formats strings a requirement, but rather an optional feature. I am considering the following API: TRACEPOINT_FORMAT(tracepoint_name, "text describing a format string with args like %s and also %d", fieldname_1, fieldname_2) where fieldname_* refer to the name of the fields declared in the tracepoint (NOT the tracepoint arguments!). e.g. TRACEPOINT_EVENT(ust_tests_hello_tptest, TP_PROTO(int anint, long along, char *text) TP_ARGS(anint, along, text) TP_FIELDS( ctf_integer(int, intfield, anint) ctf_integer(long, longfield, along) ctf_string(stringfield, text) ) ) TRACEPOINT_FORMAT(tracepoint_name, "some message %d and more %s", intfield, stringfield) Having some level of automated compiler-level type checking for the format string in there might be a nice to have, but might be rather tricky, and could change the API slightly as I proceed to the implementation. Thoughts ? Thanks, Mathieu -- 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 _______________________________________________ ltt-dev mailing list [email protected] http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
