aboutsummaryrefslogtreecommitdiff
path: root/Documentation/libtracecmd/libtracecmd-instances.txt
blob: df8fdc4e7f66c06eec514961f1db2d12133ebfe7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
libtracecmd(3)
=============

NAME
----
tracecmd_buffer_instances, tracecmd_buffer_instance_name, tracecmd_buffer_instance_handle
- Read tracing instances from a trace file.

SYNOPSIS
--------
[verse]
--
*#include <trace-cmd.h>*

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_);
--

DESCRIPTION
-----------
This set of APIs can be used to get information and read tracing data
from tracing instances stored in a trace file.

The _tracecmd_buffer_instances()_ function gets the number of tracing
instances recorded in a trace file. The top instance is not counted.
The _handle_ is a tracecmd_input handler returned by
_tracecmd_open_head()_.

The _tracecmd_buffer_instance_name()_ function gets the name of the
tracing instance with given index _indx_, recorded in a trace file.
The _indx_ is a number in the interval [0 .. count-1], where count
is the number returned by _tracecmd_buffer_instances()_. The _handle_
is a tracecmd_input handler returned by _tracecmd_open_head()_.

The _tracecmd_buffer_instance_handle()_ allocates and initializes a
tracecmd_input handle, associated with trace instance with index
_indx_ from a trace file.  The _handle_ is a tracecmd_input handler
returned by _tracecmd_open_head()_. The _indx_ is a number in the
interval [0 .. count-1], where count is the number returned by
_tracecmd_buffer_instances()_.

RETURN VALUE
------------
The _tracecmd_buffer_instances()_ function returns the number of tracing
instances recorded in a trace file.

The _tracecmd_buffer_instance_name()_ function returns a string, the name
of a tracing instance, or NULL in case of an error The string must *not*
be freed.

The _tracecmd_buffer_instance_handle()_ function returns a pointer to
newly allocated tracecmd_input handler or NULL in case if an error. The
returned handler must be closed by _tracecmd_close()(3)_

EXAMPLE
-------
[source,c]
--
#include <trace-cmd.h>
...
struct tracecmd_input *handle = tracecmd_open_head("trace.dat");
	if (!handle) {
		/* Failed to open trace.dat file */
	}
...
int num = tracecmd_buffer_instances(handle);

	while(num) {
		struct tracecmd_input *h;
		char *name;

		name = tracecmd_buffer_instance_name(handle, num);
		if (!name) {
			/* Failed to get name of instance num */
		}
		h = tracecmd_buffer_instance_handle(handle, num);
		if (!h) {
			/* Failed to initialize handler for instance num */
		}

		...
		tracecmd_close(h);
		num--;
	}
...
	tracecmd_close(handle);

--
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
--------
_libtracefs(3)_,
_libtraceevent(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).