libtraceevent(3) ================ NAME ---- tep_get_any_field_val, tep_get_common_field_val, tep_get_field_val, tep_get_field_raw - Get value of a field. SYNOPSIS -------- [verse] -- *#include * *#include * int *tep_get_any_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_); int *tep_get_common_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_); int *tep_get_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_); void pass:[*]*tep_get_field_raw*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, int pass:[*]_len_, int _err_); -- DESCRIPTION ----------- These functions can be used to find a field and retrieve its value. The *tep_get_any_field_val()* function searches in the _record_ for a field with _name_, part of the _event_. If the field is found, its value is stored in _val_. If there is an error and _err_ is not zero, then an error string is written into _s_. The *tep_get_common_field_val()* function does the same as *tep_get_any_field_val()*, but searches only in the common fields. This works for any event as all events include the common fields. The *tep_get_field_val()* function does the same as *tep_get_any_field_val()*, but searches only in the event specific fields. The *tep_get_field_raw()* function searches in the _record_ for a field with _name_, part of the _event_. If the field is found, a pointer to where the field exists in the record's raw data is returned. The size of the data is stored in _len_. If there is an error and _err_ is not zero, then an error string is written into _s_. RETURN VALUE ------------ The *tep_get_any_field_val()*, *tep_get_common_field_val()* and *tep_get_field_val()* functions return 0 on success, or -1 in case of an error. The *tep_get_field_raw()* function returns a pointer to field's raw data, and places the length of this data in _len_. In case of an error NULL is returned. EXAMPLE ------- [source,c] -- #include #include ... struct tep_handle *tep = tep_alloc(); ... struct tep_event *event = tep_find_event_by_name(tep, "kvm", "kvm_exit"); ... void process_record(struct tep_record *record) { int len; char *comm; struct tep_event *event; unsigned long long val; event = tep_find_event_by_record(tep, record); if (event != NULL) { if (tep_get_common_field_val(NULL, event, "common_type", record, &val, 0) == 0) { /* Got the value of common type field */ } if (tep_get_field_val(NULL, event, "pid", record, &val, 0) == 0) { /* Got the value of pid specific field */ } comm = tep_get_field_raw(NULL, event, "comm", record, &len, 0); if (comm != NULL) { /* Got a pointer to the comm event specific field */ } } } -- FILES ----- [verse] -- *event-parse.h* Header file to include in order to have access to the library APIs. *trace-seq.h* Header file to include in order to have access to trace sequences related APIs. Trace sequences are used to allow a function to call several other functions to create a string of data to use. *-ltraceevent* Linker switch to add when building a program that uses the library. -- SEE ALSO -------- *libtraceevent*(3), *trace-cmd*(1) AUTHOR ------ [verse] -- *Steven Rostedt* , author of *libtraceevent*. *Tzvetomir Stoyanov* , author of this man page. -- REPORTING BUGS -------------- Report bugs to LICENSE ------- libtraceevent is Free Software licensed under the GNU LGPL 2.1 RESOURCES --------- https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/