File: libtracecmd-instances.txt

package info (click to toggle)
trace-cmd 3.3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,056 kB
  • sloc: ansic: 33,750; makefile: 966; sh: 762; python: 604
file content (129 lines) | stat: -rw-r--r-- 3,452 bytes parent folder | download | duplicates (3)
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).