mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.2 KiB
126 lines
4.2 KiB
libtraceevent(3) |
|
================ |
|
|
|
NAME |
|
---- |
|
tep_print_field, tep_print_fields, tep_print_num_field, tep_print_func_field - |
|
Print the field content. |
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
-- |
|
*#include <event-parse.h>* |
|
*#include <trace-seq.h>* |
|
|
|
void *tep_print_field*(struct trace_seq pass:[*]_s_, void pass:[*]_data_, struct tep_format_field pass:[*]_field_); |
|
void *tep_print_fields*(struct trace_seq pass:[*]_s_, void pass:[*]_data_, int _size_, struct tep_event pass:[*]_event_); |
|
int *tep_print_num_field*(struct trace_seq pass:[*]_s_, const char pass:[*]_fmt_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, int _err_); |
|
int *tep_print_func_field*(struct trace_seq pass:[*]_s_, const char pass:[*]_fmt_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, int _err_); |
|
-- |
|
|
|
DESCRIPTION |
|
----------- |
|
These functions print recorded field's data, according to the field's type. |
|
|
|
The _tep_print_field()_ function extracts from the recorded raw _data_ value of |
|
the _field_ and prints it into _s_, according to the field type. |
|
|
|
The _tep_print_fields()_ prints each field name followed by the record's field |
|
value according to the field's type: |
|
[verse] |
|
-- |
|
"field1_name=field1_value field2_name=field2_value ..." |
|
-- |
|
It iterates all fields of the _event_, and calls _tep_print_field()_ for each of |
|
them. |
|
|
|
The _tep_print_num_field()_ function prints a numeric field with given format |
|
string. A search is performed in the _event_ for a field with _name_. If such |
|
field is found, its value is extracted from the _record_ and is printed in the |
|
_s_, according to the given format string _fmt_. If the argument _err_ is |
|
non-zero, and an error occures - it is printed in the _s_. |
|
|
|
The _tep_print_func_field()_ function prints a function field with given format |
|
string. A search is performed in the _event_ for a field with _name_. If such |
|
field is found, its value is extracted from the _record_. The value is assumed |
|
to be a function address, and a search is perform to find the name of this |
|
function. The function name (if found) and its address are printed in the _s_, |
|
according to the given format string _fmt_. If the argument _err_ is non-zero, |
|
and an error occures - it is printed in _s_. |
|
|
|
RETURN VALUE |
|
------------ |
|
The _tep_print_num_field()_ and _tep_print_func_field()_ functions return 1 |
|
on success, -1 in case of an error or 0 if the print buffer _s_ is full. |
|
|
|
EXAMPLE |
|
------- |
|
[source,c] |
|
-- |
|
#include <event-parse.h> |
|
#include <trace-seq.h> |
|
... |
|
struct tep_handle *tep = tep_alloc(); |
|
... |
|
struct trace_seq seq; |
|
trace_seq_init(&seq); |
|
struct tep_event *event = tep_find_event_by_name(tep, "timer", "hrtimer_start"); |
|
... |
|
void process_record(struct tep_record *record) |
|
{ |
|
struct tep_format_field *field_pid = tep_find_common_field(event, "common_pid"); |
|
|
|
trace_seq_reset(&seq); |
|
|
|
/* Print the value of "common_pid" */ |
|
tep_print_field(&seq, record->data, field_pid); |
|
|
|
/* Print all fields of the "hrtimer_start" event */ |
|
tep_print_fields(&seq, record->data, record->size, event); |
|
|
|
/* Print the value of "expires" field with custom format string */ |
|
tep_print_num_field(&seq, " timer expires in %llu ", event, "expires", record, 0); |
|
|
|
/* Print the address and the name of "function" field with custom format string */ |
|
tep_print_func_field(&seq, " timer function is %s ", event, "function", record, 0); |
|
} |
|
... |
|
-- |
|
|
|
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* <[email protected]>, author of *libtraceevent*. |
|
*Tzvetomir Stoyanov* <[email protected]>, author of this man page. |
|
-- |
|
REPORTING BUGS |
|
-------------- |
|
Report bugs to <[email protected]> |
|
|
|
LICENSE |
|
------- |
|
libtraceevent is Free Software licensed under the GNU LGPL 2.1 |
|
|
|
RESOURCES |
|
--------- |
|
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
|
|