Man page - tracefs_list_free(3)
Packages contains this manual
- tracefs_instance_get_subbuf_size(3)
- tracefs_tracer_clear(3)
- tracefs_function_notrace(3)
- tracefs_instance_file_append(3)
- tracefs_hist_alloc_nd(3)
- tracefs_instance_get_affinity(3)
- tracefs_error_clear(3)
- tracefs_instance_get_dir(3)
- tracefs_filter_pid_function_clear(3)
- tracefs_buffer_stat_timestamp(3)
- tracefs_hist_add_key(3)
- tracefs_set_loglevel(3)
- tracefs_trace_pipe_stop(3)
- tracefs_instance_file_open(3)
- tracefs_iterate_stop(3)
- tracefs_synth_append_end_filter(3)
- tracefs_vprintf(3)
- tracefs_instance_put_stat(3)
- tracefs_hist_add_value(3)
- tracefs_cpu_read(3)
- tracefs_synth_free(3)
- tracefs_event_file_exists(3)
- tracefs_instance_clear(3)
- tracefs_event_enable(3)
- tracefs_dynevent_get(3)
- tracefs_synth_add_match_field(3)
- tracefs_mapped_is_supported(3)
- tracefs_list_add(3)
- tracefs_load_cmdlines(3)
- tracefs_instance_set_affinity_raw(3)
- libtracefs(3)
- tracefs_hist_set_sort_key(3)
- tracefs_event_filter_clear(3)
- tracefs_tracing_dir_is_mounted(3)
- tracefs_binary_write(3)
- tracefs_cpu_snapshot_open(3)
- tracefs_cpu_unmap(3)
- tracefs_synth_add_compare_field(3)
- tracefs_synth_show_event(3)
- tracefs_follow_event(3)
- tracefs_option_name(3)
- tracefs_instance_free(3)
- tracefs_synth_add_end_field(3)
- tracefs_uretprobe_alloc(3)
- tracefs_synth_snapshot(3)
- tracefs_hist_alloc_nd_cnt(3)
- tracefs_synth_trace(3)
- tracefs_option_mask_is_set(3)
- tracefs_buffer_stat_commit_overrun(3)
- tracefs_tracer_available(3)
- tracefs_instance_get_buffer_percent(3)
- tracefs_instance_file_read_number(3)
- tracefs_cpu_flush(3)
- tracefs_synth_get_name(3)
- tracefs_synth_get_event(3)
- tracefs_dir_exists(3)
- tracefs_printf(3)
- tracefs_event_systems(3)
- tracefs_error_all(3)
- tracefs_cpu_stop(3)
- tracefs_hist_alloc(3)
- tracefs_trace_on_get_fd(3)
- tracefs_instance_get_stat(3)
- tracefs_snapshot_snap(3)
- tracefs_buffer_stat_dropped_events(3)
- tracefs_event_disable(3)
- tracefs_hist_get_name(3)
- tracefs_iterate_snapshot_events(3)
- tracefs_synth_set_instance(3)
- tracefs_filter_string_verify(3)
- tracefs_trace_off(3)
- tracefs_synth_show_end_hist(3)
- tracefs_dynevent_info(3)
- tracefs_sql(3)
- tracefs_error_last(3)
- tracefs_dynevent_get_all(3)
- tracefs_file_exists(3)
- tracefs_synth_show_start_hist(3)
- tracefs_hist_add_sort_key(3)
- tracefs_instance_file_clear(3)
- tracefs_kprobe_raw(3)
- tracefs_dynevent_destroy_all(3)
- tracefs_dynevent_free(3)
- tracefs_cpu_open(3)
- tracefs_load_headers(3)
- tracefs_filter_pid_events_clear(3)
- tracefs_instance_tracers(3)
- tracefs_instance_reset(3)
- tracefs_tracers(3)
- tracefs_cpu_is_mapped(3)
- tracefs_hist_add_key_cnt(3)
- tracefs_debug_dir(3)
- tracefs_hist_add_name(3)
- tracefs_instance_destroy(3)
- tracefs_event_file_append(3)
- tracefs_buffer_stat_bytes(3)
- tracefs_cpu_flush_write(3)
- tracefs_instances(3)
- tracefs_cpu_close(3)
- tracefs_hist_destroy(3)
- tracefs_option_is_supported(3)
- tracefs_cpu_open_mapped(3)
- tracefs_buffer_stat_overrun(3)
- tracefs_dynevent_destroy(3)
- sqlhist(1)
- tracefs_instance_file_read(3)
- tracefs_cpu_read_buf(3)
- tracefs_instance_get_affinity_set(3)
- tracefs_snapshot_free(3)
- tracefs_instances_walk(3)
- tracefs_set_tracing_dir(3)
- tracefs_hist_pause(3)
- tracefs_synth_complete(3)
- tracefs_option_id(3)
- tracefs_cpu_free_fd(3)
- tracefs_hist_sort_key_direction(3)
- tracefs_hist_continue(3)
- tracefs_kretprobe_raw(3)
- tracefs_trace_on_fd(3)
- tracefs_synth_raw_fmt(3)
- tracefs_hist_echo_cmd(3)
- tracefs_time_conversion(3)
- tracefs_filter_pid_events(3)
- tracefs_hist_free(3)
- tracefs_hist_get_event(3)
- tracefs_buffer_stat_entries(3)
- tracefs_follow_missed_events(3)
- tracefs_synth_echo_cmd(3)
- tracefs_filter_pid_function(3)
- tracefs_get_clock(3)
- tracefs_get_tracing_file(3)
- tracefs_cpu_flush_buf(3)
- tracefs_options_get_enabled(3)
- tracefs_print_close(3)
- tracefs_local_events(3)
- tracefs_dynevent_list_free(3)
- tracefs_cpu_buffered_read_buf(3)
- tracefs_cpu_buffered_read(3)
- tracefs_trace_on(3)
- tracefs_event_file_clear(3)
- tracefs_option_enable(3)
- tracefs_snapshot_clear(3)
- tracefs_function_filter(3)
- tracefs_hist_append_filter(3)
- tracefs_list_free(3)
- tracefs_synth_add_start_field(3)
- tracefs_trace_pipe_print(3)
- tracefs_buffer_stat_read_events(3)
- tracefs_trace_is_on(3)
- tracefs_instance_set_buffer_size(3)
- tracefs_instance_get_affinity_raw(3)
- tracefs_hist_command(3)
- tracefs_instance_find_cid_pid(3)
- tracefs_follow_event_clear(3)
- tracefs_trace_pipe_stream(3)
- tracefs_event_is_enabled(3)
- tracefs_trace_off_fd(3)
- tracefs_cpu_read_size(3)
- tracefs_binary_close(3)
- tracefs_find_cid_pid(3)
- tracefs_instance_create(3)
- tracefs_instance_get_name(3)
- tracefs_buffer_stat_event_timestamp(3)
- tracefs_instance_set_affinity_set(3)
- tracefs_instance_get_file(3)
- tracefs_kprobe_alloc(3)
- tracefs_options_get_supported(3)
- tracefs_follow_missed_events_clear(3)
- tracefs_hist_start(3)
- tracefs_kretprobe_alloc(3)
- tracefs_hist_reset(3)
- tracefs_synth_destroy(3)
- tracefs_instance_get_buffer_size(3)
- tracefs_option_is_enabled(3)
- tracefs_binary_init(3)
- tracefs_instance_file_write(3)
- tracefs_instance_set_buffer_percent(3)
- tracefs_eprobe_alloc(3)
- tracefs_synth_create(3)
- tracefs_put_tracing_file(3)
- tracefs_event_filter_apply(3)
- tracefs_instance_alloc(3)
- tracefs_uprobe_alloc(3)
- tracefs_instance_get_trace_dir(3)
- tracefs_event_file_read(3)
- tracefs_option_disable(3)
- tracefs_iterate_raw_events(3)
- tracefs_event_file_write(3)
- tracefs_system_events(3)
- tracefs_fill_local_events(3)
- tracefs_cpu_map(3)
- tracefs_dynevent_get_event(3)
- tracefs_cpu_write(3)
- tracefs_dynevent_create(3)
- tracefs_synth_append_start_filter(3)
- tracefs_synth_get_start_hist(3)
- tracefs_instance_file_write_number(3)
- tracefs_list_size(3)
- tracefs_print_init(3)
- tracefs_filter_functions(3)
- tracefs_instance_exists(3)
- tracefs_instance_set_affinity(3)
- tracefs_options(3)
- tracefs_kprobe_destroy(3)
- tracefs_hist_get_system(3)
- tracefs_cpu_pipe(3)
- tracefs_hist_alloc_2d(3)
- tracefs_synth_save(3)
- tracefs_instance_set_subbuf_size(3)
- tracefs_filter_string_append(3)
- tracefs_cpu_alloc_fd(3)
- tracefs_event_get_file(3)
- tracefs_tracing_dir(3)
- tracefs_instance_is_new(3)
- tracefs_local_events_system(3)
- tracefs_tracer_set(3)
- tracefs_synth_alloc(3)
apt-get install libtracefs-doc
Manual
LIBTRACEFS
NAMESYNOPSIS
DESCRIPTION
RETURN VALUE
EXAMPLE
FILES
SEE ALSO
AUTHOR
REPORTING BUGS
LICENSE
RESOURCES
COPYING
NOTES
NAME
tracefs_tracers, tracefs_tracer_available, tracefs_get_clock, tracefs_list_free, tracefs_list_add, tracefs_list_size - Helper functions for working with trace file system.
SYNOPSIS
#include <tracefs.h>
char
**
tracefs_tracers
(const char *
tracing_dir
);
bool
tracefs_tracer_available
(const char
*
tracing_dir
, const char *
tracer
);
char *
tracefs_get_clock
(struct tracefs_instance
*
instance
);
void
tracefs_list_free
(char **
list
);
char **
tracefs_list_add
(char
*
list
,
const char *
string
);
int *tracefs_list_size
(char **
list
);
DESCRIPTION
Various useful functions for working with trace file system.
The tracefs_tracers() function returns array of strings with the names of supported tracer plugins, located in the given tracing_dir directory. This could be NULL or the location of the tracefs mount point for the trace systems of the local machine, or it may be a path to a copy of the tracefs directory from another machine. The last entry in the array as a NULL pointer. The array must be freed with tracefs_list_free() API.
The tracefs_tracer_available() returns true if the tracer is available in the given tracing_dir_director , and false otherwise.
The tracefs_get_clock() function returns name of the current trace clock, used in the given instance . If instance is NULL, the clock of the main trace instance is returned. The returned string must be freed with free().
The tracefs_list_free() function frees an array of strings, returned by tracefs_event_systems() , tracefs_system_events() and tracefs_tracers() APIs.
The tracefs_list_add() function adds string to the string list . If list is NULL, then a new list is created with the first element a copy of string , and the second element will be a NULL pointer. If list is not NULL, then it is reallocated to include a new element and a NULL terminator, and the new allocated array is returned. The list passed in should be ignored, as it wil be freed if a new one was allocated.
The tracefs_list_size() is a fast way to find out the number of elements in a string array that is to be freed with tracefs_list_free() . Note, this depends on meta data that is created for these lists and will not work on normal string arrays like argv.
RETURN VALUE
The tracefs_tracers() returns array of strings. The last element in that array is a NULL pointer. The array must be freed with tracefs_list_free() API. In case of an error, NULL is returned.
The tracefs_tracer_available() returns true if the tracer is available, and false otherwise.
The tracefs_get_clock() returns string, that must be freed with free(), or NULL in case of an error.
The tracefs_list_add() returns an allocated string array that must be freed with tracefs_list_free() on success or NULL on error. If NULL is returned, then the passed in list is untouched. Thus, tracefs_list_add() should be treated similarly to realloc (3).
The tracefs_list_size() returns the number of strings in the list . The passed in list must be one that is to be freed with tracefs_list_free() as the list has meta data that is used to determine the size and this does not work on any normal string array like argv.
EXAMPLE
#include <tracefs.h>
char **tracers = tracefs_tracers(NULL);
if (tracers) {
/* Got tracer plugins from the top trace instance */
...
tracefs_list_free(tracers);
}
....
char *clock = tracefs_get_clock(NULL);
if (clock) {
/* Got current trace clock of the top trace instance */
...
free(clock);
}
FILES
tracefs.h
Header file to include in order to have access to the
library APIs.
-ltracefs
Linker switch to add when building a program that uses the
library.
SEE ALSO
libtracefs (3), libtraceevent (3), trace-cmd (1)
AUTHOR
Steven
Rostedt
<
rostedt@goodmis.org
[1]
>
Tzvetomir Stoyanov
<
tz.stoyanov@gmail.com
[2]
>
REPORTING BUGS
Report bugs to < linux-trace-devel@vger.kernel.org [3] >
LICENSE
libtracefs is Free Software licensed under the GNU LGPL 2.1
RESOURCES
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
COPYING
Copyright (C) 2020 VMware, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).
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