tep_get_any_field_val - Man Page

Get value of a field​.

Synopsis

#include <event-parse​.h>
#include <trace-seq​.h>

int tep_get_any_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
int tep_get_common_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
int tep_get_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, int *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

#include <event-parse​.h>
#include <trace-seq​.h>
​.​.​.
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

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

Steven Rostedt <rostedt@goodmis​.org​[1]>, author of libtraceevent​.
Tzvetomir Stoyanov <tz​.stoyanov@gmail​.com​[2]>, author of this man page​.

Reporting Bugs

Report bugs to <linux-trace-devel@vger​.kernel​.org​[3]>

License

libtraceevent is Free Software licensed under the GNU LGPL 2​.1

Resources

https://git​.kernel​.org/pub/scm/libs/libtrace/libtraceevent​.git/

Notes

  1. rostedt@goodmis.org
    mailto:rostedt@goodmis.org
  2. tz.stoyanov@gmail.com
    mailto:tz.stoyanov@gmail.com
  3. linux-trace-devel@vger.kernel.org
    mailto:linux-trace-devel@vger.kernel.org

Info

10/02/2026 libtraceevent 1.9.0 libtraceevent Manual