blob: 52d4e5994c146c9e77222e9747f1668e0082720f [file] [log] [blame]
libtracecmd(3)
=============
NAME
----
libtracecmd - trace-cmd library APIs
SYNOPSIS
--------
[verse]
--
*#include <trace-cmd.h>*
Open and close trace file:
struct tracecmd_input pass:[*]*tracecmd_open*(const char pass:[*]_file_, int _flags_);
struct tracecmd_input pass:[*]*tracecmd_open_fd*(int _fd_, int _flags_);
struct tracecmd_input pass:[*]*tracecmd_open_head*(const char pass:[*]_file_, int _flags_);
void *tracecmd_close*(struct tracecmd_input pass:[*]_handle_);
void *tracecmd_set_private*(struct tracecmd_input pass:[*]_handle_, void pass:[*]_data_);
void pass:[*]*tracecmd_get_private*(struct tracecmd_input pass:[*]_handle_);
Read tracing records from a trace file:
int *tracecmd_init_data*(struct tracecmd_input pass:[*]_handle_);
struct tep_record pass:[*]*tracecmd_read_cpu_first*(struct tracecmd_input pass:[*]_handle_, int _cpu_);
struct tep_record pass:[*]*tracecmd_read_data*(struct tracecmd_input pass:[*]_handle_, int _cpu_);
struct tep_record pass:[*]*tracecmd_read_at*(struct tracecmd_input pass:[*]_handle_, unsigned long long _offset_, int pass:[*]_cpu_);
void *tracecmd_free_record*(struct tep_record pass:[*]_record_);
struct tep_handle pass:[*]*tracecmd_get_tep*(struct tracecmd_input pass:[*]_handle_);
Iterating over events in a trace file:
int *tracecmd_iterate_events*(struct tracecmd_input pass:[*]_handle_,
cpu_set_t pass:[*]_cpus_, int _cpu_size_,
int (pass:[*]_callback_)(struct tracecmd_input pass:[*],
struct tep_record pass:[*],
int, void pass:[*]),
void pass:[*]_callback_data_);
int *tracecmd_iterate_events_multi*(struct tracecmd_input pass:[**]_handles_,
int _nr_handles_,
int (pass:[*]_callback_)(struct tracecmd_input pass:[*],
struct tep_record pass:[*],
int, void pass:[*]),
void pass:[*]_callback_data_);
int *tracecmd_iterate_events_reverse*(struct tracecmd_input pass:[*]_handle_,
cpu_set_t pass:[*]_cpus_, int _cpu_size_,
int (pass:[*]_callback_)(struct tracecmd_input pass:[*],
struct tep_record pass:[*],
int, void pass:[*]),
void pass:[*]_callback_data_, bool _cont_);
int *tracecmd_follow_event*(struct tracecmd_input pass:[*]_handle_,
const char pass:[*]_system_, const char pass:[*]_event_name_,
int (pass:[*]_callback_)(struct tracecmd_input pass:[*],
struct tep_event pass:[*],
struct tep_record pass:[*],
int, void pass:[*]),
void pass:[*]_callback_data_);
int *tracecmd_follow_missed_events*(struct tracecmd_input pass:[*]_handle_,
int (pass:[*]_callback_)(struct tracecmd_input pass:[*],
struct tep_event pass:[*],
struct tep_record pass:[*],
int, void pass:[*]),
void pass:[*]_callback_data_);
struct tracecmd_filter pass:[*]*tracecmd_filter_add*(struct tracecmd_input *_handle_,
const char pass:[*]_filter_str_, bool _neg_);
int *tracecmd_iterate_reset*(struct tracecmd_input pass:[*]_handle_);
Read tracing instances from a trace file:
int *tracecmd_buffer_instances*(struct tracecmd_input pass:[*]_handle_);
const char pass:[*]*tracecmd_buffer_instance_name*(struct tracecmd_input pass:[*]_handle_, int _indx_);
struct tracecmd_input pass:[*]*tracecmd_buffer_instance_handle*(struct tracecmd_input pass:[*]_handle_, int _indx_);
Handle time stamps from a trace file:
unsigned long long *tracecmd_get_first_ts*(struct tracecmd_input pass:[*]_handle_);
void *tracecmd_add_ts_offset*(struct tracecmd_input pass:[*]_handle_, long long _offset_);
int *tracecmd_get_tsc2nsec*(struct tracecmd_input pass:[*]_handle_, int pass:[*]_mult_, int pass[*]_shift_, unsigned long long pass:[*]_offset_);
Get traceing peer information from a trace file:
unsigned long long *tracecmd_get_traceid*(struct tracecmd_input pass:[*]_handle_);
int *tracecmd_get_guest_cpumap*(struct tracecmd_input pass:[*]_handle_, unsigned long long _trace_id_, const char pass:[*]pass:[*]_name_, int pass:[*]_vcpu_count_, const int pass:[*]pass:[*]_cpu_pid_);
Mapping host and guest trace files:
int *tracecmd_map_vcpus*(struct tracecmd_input pass:[**]handles, int nr_handles);
struct tracecmd_cpu_map pass:[*]*tracecmd_get_cpu_map*(struct tracecmd_input pass:[*]handle, int cpu);
struct tracecmd_cpu_map pass:[*]*tracecmd_map_find_by_host_pid*(struct tracecmd_input pass:[*]handle,
int host_pid);
int *tracecmd_map_get_host_pid*(struct tracecmd_cpu_map pass:[*]map);
struct tracecmd_input pass:[*]*tracecmd_map_get_guest*(struct tracecmd_cpu_map pass:[*]map);
void *tracecmd_map_set_private*(struct tracecmd_cpu_map pass:[*]map, void pass:[*]priv);
void pass:[*]*tracecmd_map_get_private*(struct tracecmd_cpu_map pass:[*]map);
Control library logs:
int *tracecmd_set_loglevel*(enum tep_loglevel _level_);
--
DESCRIPTION
-----------
The libtracecmd(3) library provides APIs to read, parse and write
_trace-cmd.dat(5)_ files, recorded with _trace-cmd(1)_ application and containing
tracing information from ftrace, the official Linux kernel tracer.
FILES
-----
[verse]
--
*trace-cmd.h*
Header file to include in order to have access to the library APIs.
*-ltracecmd*
Linker switch to add when building a program that uses the library.
--
SEE ALSO
--------
*libtraceevent(3)*
*libtracefs(3)*
*trace-cmd(1)*
*trace-cmd.dat(5)*
AUTHOR
------
[verse]
--
*Steven Rostedt* <rostedt@goodmis.org>
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>
--
REPORTING BUGS
--------------
Report bugs to <linux-trace-devel@vger.kernel.org>
LICENSE
-------
libtracecmd is Free Software licensed under the GNU LGPL 2.1
RESOURCES
---------
https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/
COPYING
-------
Copyright \(C) 2020 VMware, Inc. Free use of this software is granted under
the terms of the GNU Public License (GPL).